Skip to main content
`Ctrl`+`K`
scipy.spatial.transform.Rotation.

# magnitude

Rotation.magnitude()

  Get the magnitude(s) of the rotation(s).

  Returns:
    magnitude ndarray or float

      Angle(s) in radians, float if object contains a single rotation and ndarray if object contains ND rotations. The magnitude will always be in the range [0, pi].

  Notes

  Array API Standard Support

  `magnitude` has experimental support for Python Array API Standard compatible backends in addition to NumPy. Please consider testing these features by setting an environment variable `SCIPY_ARRAY_API=1` and providing CuPy, PyTorch, JAX, or Dask arrays as array arguments. The following combinations of backend and device (or other capability) are supported.

  Library | CPU | GPU
  --- | --- | ---
  NumPy | ✅ | n/a
  CuPy | n/a | ✅
  PyTorch | ✅ | ✅
  JAX | ✅ | ✅
  Dask | ⛔ | n/a

  > See Support for the array API standard for more information.

  Examples

      >>> from scipy.spatial.transform import Rotation as R
      >>> import numpy as np
      >>> r = R.from_quat(np.eye(4))
      >>> r.as_quat()
      array([[ 1., 0., 0., 0.],
             [ 0., 1., 0., 0.],
             [ 0., 0., 1., 0.],
             [ 0., 0., 0., 1.]])
      >>> r.magnitude()
      array([3.14159265, 3.14159265, 3.14159265, 0.        ])

  Magnitude of a single rotation:

      >>> r[0].magnitude()
      3.141592653589793