在二进制数组

时间:2016-08-26 11:02:55

标签: python numpy

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已经存在了这样的事情。

3 个答案:

答案 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)

列表中的所有元素都将被反转。