两个向量的交叉积

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'