我不断收到错误:
"(形状(10,1),(10,)不匹配)"
在进行NumPy操作时我感到有些困惑。
不会(10,1)和(10)是相同的形状吗?如果由于某种原因这是无效的,有没有办法将(10,1)转换为(10,)?我似乎无法在NumPy doucmentation中找到它。
由于
答案 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),你会看到差异。