Return the multiple vector cross product of two vectors and change the orientation of the result in Python

To compute the cross product of two vectors and change the orientation of the result, use the numpy.cross() method in Python NumPy. The method returns the vector cross product(s) with customizable axis orientation.

Parameters

The numpy.cross() method accepts several parameters to control vector orientation:

  • a: Components of the first vector(s)
  • b: Components of the second vector(s)
  • axisa: Axis of a that defines the vector(s) (default: last axis)
  • axisb: Axis of b that defines the vector(s) (default: last axis)
  • axisc: Axis of c containing the cross product vector(s) (default: last axis)
  • axis: Overrides axisa, axisb and axisc when defined

Basic Cross Product Example

Let's start with a simple cross product calculation ?

import numpy as np

# Creating two vectors
arr1 = np.array([[5, 10, 15], [30, 35, 40]])
arr2 = np.array([[30, 35, 40], [5, 10, 15]])

print("Vector 1:")
print(arr1)
print("\nVector 2:")
print(arr2)

# Default cross product
result = np.cross(arr1, arr2)
print("\nDefault cross product:")
print(result)
Vector 1:
[[ 5 10 15]
 [30 35 40]]

Vector 2:
[[30 35 40]
 [ 5 10 15]]

Default cross product:
[[-125  250 -125]
 [ 125 -250  125]]

Changing Result Orientation with axisc

The axisc parameter controls the orientation of the cross product result ?

import numpy as np

arr1 = np.array([[5, 10, 15], [30, 35, 40]])
arr2 = np.array([[30, 35, 40], [5, 10, 15]])

# Change orientation using axisc=0
result_axis0 = np.cross(arr1, arr2, axisc=0)
print("Cross product with axisc=0:")
print(result_axis0)

print("\nShape comparison:")
print(f"Default result shape: {np.cross(arr1, arr2).shape}")
print(f"axisc=0 result shape: {result_axis0.shape}")
Cross product with axisc=0:
[[-125  125]
 [ 250 -250]
 [-125  125]]

Shape comparison:
Default result shape: (2, 3)
axisc=0 result shape: (3, 2)

Multiple Vector Cross Products

You can compute multiple cross products simultaneously with different orientations ?

import numpy as np

# Multiple 3D vectors
vectors_a = np.array([[1, 0, 0], [0, 1, 0], [0, 0, 1]])
vectors_b = np.array([[0, 1, 0], [0, 0, 1], [1, 0, 0]])

print("Vectors A:")
print(vectors_a)
print("\nVectors B:")
print(vectors_b)

# Cross product with different axis orientations
result_default = np.cross(vectors_a, vectors_b)
result_axis0 = np.cross(vectors_a, vectors_b, axisc=0)

print("\nDefault orientation (axisc=-1):")
print(result_default)
print("\nChanged orientation (axisc=0):")
print(result_axis0)
Vectors A:
[[1 0 0]
 [0 1 0]
 [0 0 1]]

Vectors B:
[[0 1 0]
 [0 0 1]
 [1 0 0]]

Default orientation (axisc=-1):
[[ 0  0  1]
 [ 1  0  0]
 [ 0  1  0]]

Changed orientation (axisc=0):
[[0 1 0]
 [0 0 1]
 [1 0 0]]

Comparison of Orientations

Parameter Effect Result Shape
axisc=-1 (default) Cross product along last axis (n, 3) for n vectors
axisc=0 Cross product along first axis (3, n) for n vectors
axisc=1 Cross product along second axis Varies by input shape

Conclusion

Use the axisc parameter in numpy.cross() to control the orientation of cross product results. Setting axisc=0 transposes the output, making it useful for different computational workflows and array operations.

Updated on: 2026-03-26T19:32:30+05:30

252 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements