NumPy cross()

The numpy.cross() method computes the cross product of two vectors.

Example

import numpy as np

# create two input arrays
array1 = np.array([1, 2, 3])
array2 = np.array([4, 5, 6])

# compute the cross product of array1 and array2 result = np.cross(array1, array2)
print(result) # Output:[-3 6 -3]

cross() Syntax

The syntax of the numpy.cross() method is:

numpy.cross(a, b, axisa = -1, axisb = -1, axisc = -1, axis = None)

cross() Arguments

The numpy.cross() method takes following arguments:

  • a - the first input array
  • b - the second input array
  • axisa (optional) - the axis along which to take the cross product for a
  • axisb (optional) - the axis along which to take the cross product for b
  • axisc (optional) -the axis along which to take the cross product for c
  • axis (optional) - if specified, it overrides axisa, axisb, and axisc

Note: All the optionals arguments here take integer values.


cross() Return Value

The numpy.cross() method returns an array containing the cross product of a and b.


Example 1: Find the Cross Product of Two Arrays

import numpy as np

# create two input arrays
array1 = np.array([1, 2, 3])
array2 = np.array([4, 5, 6])

# compute the cross product of array1 and array2 result = np.cross(array1, array2)
print(result)

Output

[-3  6 -3]

Here, we have two input arrays:

array1 = [1, 2, 3]
array2 = [4, 5, 6]

Now to compute the cross product, we apply the following formula:

cross product = (array1[1] * array2[2] - array1[2] * array2[1], 
                 array1[2] * array2[0] - array1[0] * array2[2], 
                 array1[0] * array2[1] - array1[1] * array2[0])

Then, substituting the values from the input arrays:

cross product = (2 * 6 - 3 * 5, 
                 3 * 4 - 1 * 6, 
                 1 * 5 - 2 * 4)

Finally, after evaluating the expressions:

cross product = (-3, 6, -3)

Therefore, the output array of np.cross(array1, array2) is [ -3, 6, -3].


Example 2: Use of axisa, axisb, axisc Arguments in cross()

import numpy as np

# create two input arrays
array1 = np.array([[1, 2, 3], [4, 5, 6]])
array2 = np.array([[7, 8, 9], [10, 11, 12]])

# compute the cross product # along the first axis of each array resultAxis = np.cross(array1, array2, axisa = 1, axisb = 1, axisc = 1)
print("Result with axisa = 1, axisb = 1, axisc = 1:") print(resultAxis)

Output

Result with axisa = 1, axisb = 1, axisc = 1:
[[-6 12 -6]
 [-6 12 -6]]

Here, to compute the cross product along axis 1, we consider the vectors along axis 1 of both array1 and array2:

array1 = ([[1, 2, 3],
          [4, 5, 6]])

array2 = ([[7, 8, 9],
          [10, 11, 12]])

For the first row of array1 and array2, the cross product is calculated as:

[1, 2, 3] × [7, 8, 9] = [-6, 12, -6]

Similarly, for the second row of array1 and array2, the cross product is calculated as:

[4, 5, 6] × [10, 11, 12] = [-6, 12, -6]

Example 3: Use of axis Argument in cross()

import numpy as np

# create two input arrays
array1 = np.array([[1, 2, 3], [4, 5, 6]])
array2 = np.array([[7, 8, 9], [10, 11, 12]])

# compute the cross product along axis 0 axis0 = np.cross(array1, array2, axis = 0)
print("Result with axis = 0:") print(axis0)
# compute the cross product along axis 1 axis1 = np.cross(array1, array2, axis = 1)
print("\nResult with axis = 1:") print(axis1)

Output

Result with axis=0:
[-18 -18 -18]

Result with axis=1:
[[-6 12 -6]
 [-6 12 -6]]

Here, when

  • axis = 0 - output [-18, -18, -18] represents the cross product along the column vectors of array1 and array2.
  • axis = 1 - output [[ -6, 12, -6], [ -6, 12, -6]] represents the cross product along the row vectors of array1 and array2.