如何修复:所有输入数组必须具有相同的维数


使用 NumPy 时可能遇到的错误是:

 ValueError : all the input arrays must have same number of dimensions

当您尝试连接两个不同维度的 NumPy 数组时,会出现此错误。

以下示例展示了如何在实践中纠正此错误。

如何重现错误

假设我们有以下两个 NumPy 数组:

 import numpy as np

#create first array
array1 = np. array ([[1, 2], [3, 4], [5,6], [7,8]])

print (array1) 

[[1 2]
 [3 4]
 [5 6]
 [7 8]]

#create second array 
array2 = np. array ([9,10,11,12])

print (array2)

[9 10 11 12]

现在假设我们尝试使用concatenate()函数将两个数组合并为一个数组:

 #attempt to concatenate the two arrays
n.p. concatenate ([array1, array2])

ValueError : 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)

我们收到一个ValueError因为两个数组具有不同的维度。

如何修复错误

我们可以使用两种方法来修复这个错误。

方法1:使用np.column_stack

连接两个表同时避免错误的一种方法是使用column_stack()函数,如下所示:

 n.p. column_stack ((array1, array2))

array([[ 1, 2, 9],
       [3, 4, 10],
       [5, 6, 11],
       [7, 8, 12]])

请注意,我们能够成功连接两个数组,没有任何错误。

方法2:使用np.c_

我们还可以使用np.c_函数连接两个表,同时避免错误,如下所示:

 n.p. c_ [array1, array2]

array([[ 1, 2, 9],
       [3, 4, 10],
       [5, 6, 11],
       [7, 8, 12]])

请注意,此函数返回与前一个方法完全相同的结果。

其他资源

以下教程解释了如何修复 Python 中的其他常见错误:

如何修复 Pandas 中的 KeyError
如何修复:ValueError:无法将 float NaN 转换为 int
如何修复:ValueError:操作数无法与形状一起广播

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注