scipy.spatial.transform.Rotation.
concatenate#
- static Rotation.concatenate(rotations)[source]#
将一系列
Rotation对象连接成一个单一对象。如果想例如计算一组旋转的平均值,并且需要将它们打包到一个单一对象中进行计算,这将非常有用。
附注
在版本 1.8.0 中新增。
数组 API 标准支持
concatenate对 Python Array API Standard 兼容的后端具有实验性支持,除了 NumPy 之外。请考虑通过设置环境变量SCIPY_ARRAY_API=1并提供 CuPy、PyTorch、JAX 或 Dask 数组作为数组参数来测试这些功能。支持以下后端和设备(或其他功能)的组合。库
CPU
GPU
NumPy
✅
不适用
CuPy
不适用
✅
PyTorch
✅
✅
JAX
✅
✅
Dask
⛔
不适用
有关更多信息,请参阅 对数组 API 标准的支持。
示例
>>> 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])
连接一个分割的旋转可以恢复原始对象。
>>> rs = [r for r in rc] >>> R.concatenate(rs).as_rotvec() array([[0., 0., 1.], [0., 0., 2.]])
请注意,通过在初始化期间传入单个包含数据的列表,而不是通过连接来创建所需的旋转,可能更简单。
>>> R.from_rotvec([[0, 0, 1], [0, 0, 2]]).as_rotvec() array([[0., 0., 1.], [0., 0., 2.]])