Numpy provides a cross
function for computing vector cross products. The cross product of vectors [1, 0, 0]
and [0, 1, 0]
is [0, 0, 1]
. Numpy tells us:
>>> a = np.array([1, 0, 0])
>>> b = np.array([0, 1, 0])
>>> np.cross(a, b)
array([0, 0, 1])
as expected.
While cross products are normally defined only for three dimensional vectors. However, either of the arguments to the Numpy function can be two element vectors. If vector c
is given as [c1, c2]
, Numpy assigns zero to the third dimension: [c1, c2, 0]
. So,
>>> c = np.array([0, 2])
>>> np.cross(a, c)
array([0, 0, 2])
Unlike dot
which exists as both a Numpy function and a method of ndarray
, cross
exists only as a standalone function:
>>> a.cross(b)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'numpy.ndarray' object has no attribute 'cross'