形状不匹配 Numpy

4
我一直在执行NumPy操作时遇到错误:
"(shapes (10, 1), (10,) mismatch)"
我有点困惑,难道(10,1)和(10,)不是相同的形状吗?如果由于某种原因这是无效的,请问有没有办法将(10,1)转换为(10,)?我在NumPy文档中找不到相关信息。
谢谢
2个回答

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 重新调整数组的形状。

2
在numpy中,(10, 1)和(10,)是完全不同的:
- (10, 1)是一个二维数组,只有一列。 - (10, )是一个一维数组。
如果你有一个名为a的数组,并打印len(a.shape),你会看到它们之间的区别。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接