Numpy中是否有一个函数在二进制数组中反转0和1? 如果
a = np.array([0, 1, 0, 1, 1])
我想得到:
b = [1, 0, 1, 0, 0]
我用:
b[a==0] = 1
b[a==1] = 0
但也许Numpy已经存在了这样的事情。
答案 0 :(得分:9)
你可以这样做:
In[1]:b=1-a
In[2]:b
Out[2]: array([1, 0, 1, 0, 0])
或
In[22]:b=(~a.astype(bool)).astype(int)
Out[22]: array([1, 0, 1, 0, 0])
答案 1 :(得分:6)
功能性方法:
>>> np.logical_not(a).astype(int)
array([1, 0, 1, 0, 0])
答案 2 :(得分:0)
假设在python3中
a = [1]
a.append(a[0]^1)
print(a)
输出将是:
[1,0]
因此,如果您应用循环:
for i in range(len(a)):
a.append(a[i]^1)
列表中的所有元素都将被反转。