MMMHUHU
两者具有相同的值,但一个是向量,另一个是向量的矩阵。下面是一个例子:import numpy as npx = np.array([1, 2, 3, 4, 5])y = np.array([[1], [2], [3], [4], [5]])print(x.shape)print(y.shape)输出是:(5,)(5, 1)
慕斯709654
像这样的问题似乎来自两个误解。没有意识到这(5,)是一个 1 元素元组。期待像矩阵一样的 MATLAB使用方便的arange函数创建一个数组:In [424]: x = np.arange(5) In [425]: x.shape Out[425]: (5,) # 1 element tupleIn [426]: x.ndim Out[426]: 1numpy不会自动生成矩阵、二维数组。在这方面它没有遵循 MATLAB。我们可以重塑该数组,添加第二维。结果是view(迟早你需要了解这意味着什么):In [427]: y = x.reshape(5,1) In [428]: y.shape Out[428]: (5, 1)In [429]: y.ndim Out[429]: 2这两个阵列的显示非常不同。相同的数字,但括号的布局和数量有很大不同,反映了各自的形状:In [430]: x Out[430]: array([0, 1, 2, 3, 4])In [431]: y Out[431]: array([[0], [1], [2], [3], [4]])形状差异可能看起来很学术 - 直到您尝试使用数组进行数学运算:In [432]: x+x Out[432]: array([0, 2, 4, 6, 8]) # element wise sumIn [433]: x+y Out[433]: array([[0, 1, 2, 3, 4], [1, 2, 3, 4, 5], [2, 3, 4, 5, 6], [3, 4, 5, 6, 7], [4, 5, 6, 7, 8]])这最终是如何产生一个 (5,5) 数组的?用 (5,1) 数组广播 (5,) 数组!