gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 19:54:56 24 4
gpt4 key购买 nike

如何连接这些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/59598047/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com