【问题标题】:Invert 0 and 1 in a binary array反转二进制数组中的 0 和 1
【发布时间】:2017-01-03 00:53:36
【问题描述】:

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 中可能已经存在一些东西来做到这一点。

【问题讨论】:

标签: python numpy


【解决方案1】:

你可以这样做:

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])

【讨论】:

    【解决方案2】:

    函数式方法:

    >>> np.logical_not(a).astype(int)
    array([1, 0, 1, 0, 0])
    

    【讨论】:

      【解决方案3】:

      在 Python 3 中,假设

      a = [1]
      a.append(a[0]^1)
      print(a)
      

      输出将是:

      [1,0]
      

      因此,如果您应用循环:

      for i in range(len(a)):
          a.append(a[i]^1)
      

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

      【讨论】:

      • 嗨@WasimKhan,谢谢你的回答。你能用markdown editing提高清晰度吗?
      猜你喜欢
      • 1970-01-01
      • 2013-01-09
      • 1970-01-01
      • 1970-01-01
      • 2018-10-05
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      • 2017-04-25
      相关资源
      最近更新 更多