【问题标题】:how to append a 1d numpy array to a 2d numpy array python如何将 1d numpy 数组附加到 2d numpy 数组 python
【发布时间】:2021-10-12 13:27:51
【问题描述】:

我想在数组[[1, 1, 1], [2, 2, 2]]上追加一个数组[3, 3, 3],这样就变成了[[1, 1, 1] , [2, 2, 2], [3, 3, 3]]

这是我的代码:

import numpy as np
arr1 = np.array([[1, 1, 1], 
                 [2, 2, 2]])

arr2 = np.append(arr1, [3, 3, 3])

print (arr2)

而不是打印[[1, 1, 1], [2, 2, 2], [3, 3, 3]]

它打印[1, 1, 1, 2, 2, 2, 3, 3, 3]

我对 numpy 很陌生,我不明白为什么 2d 数组突然变成 1d。

【问题讨论】:

  • 您回去阅读np.append 文档了吗?它解释了扁平化。
  • 是的,它说你必须使用参数 ``axis=0``` 。我尝试这样做:arr2 = np.append(arr1, [3, 3, 3], axis=0),它给了我错误:all the input arrays must have same number of dimensions, but the array at index 0 has 2 dimension(s) and the array at index 1 has 1 dimension(s)
  • np.append 基本上是调用np.concatenate 的另一种方式,正如对错误的回溯所示。一个数组是 (2,3) 形状,另一个是 (3,)。第二个应该是 (1,3) 形状来连接。 vstackconcatenate 的替代用户,负责处理该细节。

标签: python numpy append


【解决方案1】:

您可以使用有用的numpy 的标准方法vstack

这是我的代码。

初始化二维 numpy 数组

initial_array = np.array([
    [1, 1, 1], 
    [2, 2, 2]
])

定义要附加到初始数组的数组

new_array = np.array([3, 3, 3])

将新数组作为行附加到初始数组

result = np.vstack((initial_array, new_array))

这是结果

print(result)
array([[1, 1, 1],
       [2, 2, 2],
       [3, 3, 3]])

您可以在here阅读更多详细信息。

希望这个答案对您有所帮助。谢谢。

【讨论】:

    【解决方案2】:
    import numpy as np
    arr1 = np.array([[1, 1, 1], 
                     [2, 2, 2]])
    
    arr2 = np.append(arr1, [[3, 3, 3]], axis=0)
    
    print (arr2)
    

    输出:

    [[1 1 1]                                                                                                                                                                                                        
     [2 2 2]                                                                                                                                                                                                        
     [3 3 3]] 
    

    【讨论】:

      【解决方案3】:

      使用numpy.vstack:

      arr2 = np.vstack((arr1, [3,3,3]))
      >>> arr2
      [[1 1 1]
       [2 2 2]
       [3 3 3]]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-01-09
        • 2013-08-28
        • 1970-01-01
        • 1970-01-01
        • 2022-09-23
        • 2017-11-08
        • 2017-06-18
        相关资源
        最近更新 更多