形状不匹配Numpy

时间:2016-02-03 18:27:28

标签: python numpy

我不断收到错误:

"(形状(10,1),(10,)不匹配)"

在进行NumPy操作时我感到有些困惑。

不会(10,1)和(10)是相同的形状吗?如果由于某种原因这是无效的,有没有办法将(10,1)转换为(10,)?我似乎无法在NumPy doucmentation中找到它。

由于

2 个答案:

答案 0 :(得分:2)

(10,1)(10,)之间的差异是矢量的维度。第一个((10,1))是二维数组,而后者((10,))是一维的:

>>> import numpy as np
>>> x = np.zeros((10,1))
>>> x
array([[ 0.],
       [ 0.],
       [ 0.],
       [ 0.],
       [ 0.],
       [ 0.],
       [ 0.],
       [ 0.],
       [ 0.],
       [ 0.]])
>>> x.shape = (10,)
>>> x
array([ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.])

只要元素总数保持不变,您就可以通过numpy.ndarray.shape

重新塑造数组。

答案 1 :(得分:2)

numpy中,(10,1),(10,)完全相同:

  • (10,1)是一个二维数组,只有一列。

  • (10,)是一维数组

如果你有一个数组a,并打印出len(a.shape),你会看到差异。