concatenate#
- static Rotation.concatenate(rotations)[source]#
Concatenate a sequence of
Rotation
objects into a single object.This is useful if you want to, for example, take the mean of a set of rotations and need to pack them into a single object to do so.
- Parameters:
- Returns:
- concatenated
Rotation
instance The concatenated rotations.
- concatenated
Notes
Added in version 1.8.0.
concatenate
has experimental support for Python Array API Standard compatible backends in addition to NumPy. Please consider testing these features by setting an environment variableSCIPY_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 >>> r1 = R.from_rotvec([0, 0, 1]) >>> r2 = R.from_rotvec([0, 0, 2]) >>> rc = R.concatenate([r1, r2]) >>> rc.as_rotvec() array([[0., 0., 1.], [0., 0., 2.]]) >>> rc.mean().as_rotvec() array([0., 0., 1.5])
Concatenation of a split rotation recovers the original object.
>>> rs = [r for r in rc] >>> R.concatenate(rs).as_rotvec() array([[0., 0., 1.], [0., 0., 2.]])
Note that it may be simpler to create the desired rotations by passing in a single list of the data during initialization, rather then by concatenating:
>>> R.from_rotvec([[0, 0, 1], [0, 0, 2]]).as_rotvec() array([[0., 0., 1.], [0., 0., 2.]])