【问题标题】:Add new column to ndarray of inverted binary values | NumPy Array Python将新列添加到倒置二进制值的 ndarray | NumPy 数组 Python
【发布时间】:2021-06-01 04:45:24
【问题描述】:

我想将第二列附加到 ndarray,包含相反的二进制值。

取这个 n 行 1 列的 ndarray,包含二进制值:

[[0]
 [1]
 [0]
 [1]]

我想要一个产生这个输出的 for 循环:

[[0,1]
 [1,0]
 [0,1]
 [1,0]]

访问嵌套的 ndarray,添加相反的:10

注意:append()insert() 等不起作用,因为这是一个多维数组。不是列表(因此有很多 []

【问题讨论】:

    标签: python numpy multidimensional-array numpy-ndarray


    【解决方案1】:

    通过对二进制值进行not 门操作来将0 更改为1,反之亦然。然后可以将anot a这2个数组水平堆叠成一个(4,2)数组-

    import numpy as np
    
    a = np.array([[0],[1],[0],[1]])
    b = np.logical_not(a).astype(int)
    
    np.hstack([a,b])
    
    array([[0, 1],
           [1, 0],
           [0, 1],
           [1, 0]])
    

    【讨论】:

    • 天才!谢谢你。你做得太快了,好像没什么哈哈
    • 谢谢,Quang Hoang 做得比我快 :)。也要检查他的方法。他们将帮助您探索 NumPy 的工作原理(例如使用 1-a 进行广播)
    【解决方案2】:

    你可以试试:

    np.concatenate([a,1-a], axis=1)
    

    或者

    np.hstack([a,1-a])
    

    输出:

    array([[0, 1],
           [1, 0],
           [0, 1],
           [1, 0]])
    

    【讨论】:

      猜你喜欢
      • 2020-10-05
      • 2019-11-19
      • 2014-03-05
      • 2021-06-28
      • 1970-01-01
      • 1970-01-01
      • 2021-07-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多