兩個向量的交叉積

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'