两个向量的交叉积
Numpy 为计算矢量交叉产品提供了 cross
功能。矢量 [1, 0, 0]
和 [0, 1, 0]
的叉积是 [0, 0, 1]
。Numpy 告诉我们:
>>> a = np.array([1, 0, 0])
>>> b = np.array([0, 1, 0])
>>> np.cross(a, b)
array([0, 0, 1])
正如所料。
虽然交叉产品通常仅针对三维向量定义。但是,Numpy 函数的任何一个参数都可以是两个元素向量。如果向量 c
作为 [c1, c2]
给出,则 Numpy 将零赋值给第三维:[c1, c2, 0]
。所以,
>>> c = np.array([0, 2])
>>> np.cross(a, c)
array([0, 0, 2])
与作为 Numpy 函数和 ndarray
方法同时存在的 dot
不同 ,cross
仅作为独立函数存在:
>>> a.cross(b)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'numpy.ndarray' object has no attribute 'cross'