我试图了解如何处理1D
数组(线性代数中的向量)NumPy
。
在以下示例中,我生成两个numpy.array
a
and b
:
>>> import numpy as np
>>> a = np.array([1,2,3])
>>> b = np.array([[1],[2],[3]]).reshape(1,3)
>>> a.shape
(3,)
>>> b.shape
(1, 3)
对我来说,a
根据b
线性代数定义具有相同的形状:1 行 3 列,但不是NumPy
.
现在,NumPy
dot
产品:
>>> np.dot(a,a)
14
>>> np.dot(b,a)
array([14])
>>> np.dot(b,b)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: objects are not aligned
我有三个不同的输出。
dot(a,a)
和有什么区别dot(b,a)
?为什么点(b,b)
不起作用?
我对这些点积也有一些不同之处:
>>> c = np.ones(9).reshape(3,3)
>>> np.dot(a,c)
array([ 6., 6., 6.])
>>> np.dot(b,c)
array([[ 6., 6., 6.]])