python - numpy 数组连接 : "ValueError: all the input arrays must have same number of dimensions"

标签 python numpy

如何连接这些 numpy 数组?

第一个 np.array 形状为 (5,4)

[[  6487    400 489580      0]
 [  6488    401 492994      0]
 [  6491    408 489247      0]
 [  6491    408 489247      0]
 [  6492    402 499013      0]]

第二个 np.array 形状为 (5,)

[  16.   15.   12.  12.  17. ]

最终结果应该是

[[  6487    400    489580    0   16]
 [  6488    401    492994    0   15]
 [  6491    408    489247    0   12]
 [  6491    408    489247    0   12]
 [  6492    402    499013    0   17]]

我试过 np.concatenate([array1, array2]) 但我得到这个错误

ValueError: 所有输入数组的维数必须相同

我做错了什么?

最佳答案

要使用np.concatenate,我们需要将第二个数组扩展为2D,然后沿axis=1连接-

np.concatenate((a,b[:,None]),axis=1)

或者,我们可以使用 np.column_stack 来处理它 -

np.column_stack((a,b))

示例运行 -

In [84]: a
Out[84]: 
array([[54, 30, 55, 12],
       [64, 94, 50, 72],
       [67, 31, 56, 43],
       [26, 58, 35, 14],
       [97, 76, 84, 52]])

In [85]: b
Out[85]: array([56, 70, 43, 19, 16])

In [86]: np.concatenate((a,b[:,None]),axis=1)
Out[86]: 
array([[54, 30, 55, 12, 56],
       [64, 94, 50, 72, 70],
       [67, 31, 56, 43, 43],
       [26, 58, 35, 14, 19],
       [97, 76, 84, 52, 16]])

如果 b 是这样的,它是 dtype=object1D 数组,形状为 (1,),很可能所有数据都包含在其中的唯一元素中,我们需要在连接之前将其展平。为此,我们也可以在其上使用 np.concatenate。这是一个示例运行以说明这一点 -

In [118]: a
Out[118]: 
array([[54, 30, 55, 12],
       [64, 94, 50, 72],
       [67, 31, 56, 43],
       [26, 58, 35, 14],
       [97, 76, 84, 52]])

In [119]: b
Out[119]: array([array([30, 41, 76, 13, 69])], dtype=object)

In [120]: b.shape
Out[120]: (1,)

In [121]: np.concatenate((a,np.concatenate(b)[:,None]),axis=1)
Out[121]: 
array([[54, 30, 55, 12, 30],
       [64, 94, 50, 72, 41],
       [67, 31, 56, 43, 76],
       [26, 58, 35, 14, 13],
       [97, 76, 84, 52, 69]])

关于python - numpy 数组连接 : "ValueError: all the input arrays must have same number of dimensions",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41989950/

相关文章:

python - 如何在Tensorflow中生成静态随机常数?

python - 在pygame中旋转列表

python - SQLAlchemy 自动映射反向引用错误

python - 未找到 Hook 目录

python - python中的sha-256散列

Python numpy 性能 - 在非常大的数组上选择

python - PCA 仅保留较大的成对距离是什么意思?

python - 如何将这个嵌套的 for 循环写成列表理解?

Python scikit-learn : Cannot clone object. .. 因为构造函数似乎没有设置参数

Python - 将 HDF5 数据集读入列表与 numpy 数组