scipy.spatial.transform.Rotation.
__getitem__#
- Rotation.__getitem__()#
从对象中提取给定索引处的旋转。
创建一个新的
Rotation
实例,其中包含存储在此对象中的旋转子集。- 参数:
- indexer索引、切片或索引数组
指定要提取的旋转。必须指定单个索引器,就像索引 1 维数组或列表一样。
- 返回:
- rotation
Rotation
实例 - 包含
如果 indexer 是单个索引,则为单个旋转
如果 indexer 是切片或索引数组,则为一堆旋转。
- rotation
- 引发:
- 如果实例是作为单个旋转创建的,则引发 TypeError。
示例
>>> from scipy.spatial.transform import Rotation as R >>> rs = R.from_quat([ ... [1, 1, 0, 0], ... [0, 1, 0, 1], ... [1, 1, -1, 0]]) # These quats are normalized >>> rs.as_quat() array([[ 0.70710678, 0.70710678, 0. , 0. ], [ 0. , 0.70710678, 0. , 0.70710678], [ 0.57735027, 0.57735027, -0.57735027, 0. ]])
使用单个索引进行索引
>>> a = rs[0] >>> a.as_quat() array([0.70710678, 0.70710678, 0. , 0. ])
数组切片
>>> b = rs[1:3] >>> b.as_quat() array([[ 0. , 0.70710678, 0. , 0.70710678], [ 0.57735027, 0.57735027, -0.57735027, 0. ]])
使用列表推导将每个旋转拆分到其自己的对象中
>>> c = [r for r in rs] >>> print([r.as_quat() for r in c]) [array([ 0.70710678, 0.70710678, 0. , 0. ]), array([ 0. , 0.70710678, 0. , 0.70710678]), array([ 0.57735027, 0.57735027, -0.57735027, 0. ])]
拆分旋转的连接将恢复原始对象
>>> R.concatenate([a, b]).as_quat() array([[ 0.70710678, 0.70710678, 0. , 0. ], [ 0. , 0.70710678, 0. , 0.70710678], [ 0.57735027, 0.57735027, -0.57735027, 0. ]])