【发布时间】:2016-05-13 02:36:04
【问题描述】:
我不断收到错误:
"(形状 (10, 1), (10,) 不匹配)"
在进行 NumPy 操作时,我有些困惑。
(10,1) 和 (10,) 不是相同的形状吗?如果由于某种原因这无效,有没有办法将 (10,1) 转换为 (10,)?我似乎在 NumPy 文档中找不到它。
谢谢
【问题讨论】:
我不断收到错误:
"(形状 (10, 1), (10,) 不匹配)"
在进行 NumPy 操作时,我有些困惑。
(10,1) 和 (10,) 不是相同的形状吗?如果由于某种原因这无效,有没有办法将 (10,1) 转换为 (10,)?我似乎在 NumPy 文档中找不到它。
谢谢
【问题讨论】:
(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重新调整数组的形状
【讨论】:
在numpy 中,(10, 1), (10,) 不完全一样:
(10, 1) 是一个二维数组,只有一列。
(10, ) 是一个一维数组
如果你有一个数组a,并打印出 len(a.shape),你会看到不同。
【讨论】: