numpy:各种形状的一维数组

numpy:各种形状的一维数组,第1张

numpy:各种形状的一维数组

请注意,您不仅在处理一维数组:

In [6]: a.ndimOut[6]: 1In [7]: b.ndimOut[7]: 2

因此,

b
是2D阵列。您还可以在
b.shape
:(1,3)的输出中看到这一点,因为(3,)是一个维度,它表示两个维度。

np.dot
1D和2D阵列的行为不同(来自docs):

对于2-D数组,它等效于矩阵乘法,对于1-D数组,其等效于向量的内积

这就是您获得不同结果的原因,因为您正在混合1D和2D数组。由于

b
是2D数组,请
np.dot(b, b)
尝试在两个1x3矩阵上进行矩阵乘法,但失败。


对于一维数组,np.dot会做向量的内积:

In [44]: a = np.array([1,2,3])In [45]: b = np.array([1,2,3])In [46]: np.dot(a, b)Out[46]: 14In [47]: np.inner(a, b)Out[47]: 14

对于2D数组,它是矩阵乘法(因此1x3 x 3x1 = 1x1或3x1 x 1x3 = 3x3):

In [49]: a = a.reshape(1,3)In [50]: b = b.reshape(3,1)In [51]: aOut[51]: array([[1, 2, 3]])In [52]: bOut[52]:array([[1],       [2],       [3]])In [53]: np.dot(a,b)Out[53]: array([[14]])In [54]: np.dot(b,a)Out[54]:array([[1, 2, 3],       [2, 4, 6],       [3, 6, 9]])In [55]: np.dot(a,a)---------------------------------------------------------------------------ValueError          Traceback (most recent call last)<ipython-input-55-32e36f9db916> in <module>()----> 1 np.dot(a,a)ValueError: objects are not aligned


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5674404.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存