scipy.spatial.transform.Rotation.
__getitem__#
- Rotation.__getitem__()#
從物件中提取給定索引的旋轉。
建立一個新的
Rotation
實例,其中包含儲存在此物件中的旋轉子集。- 參數:
- indexer索引、切片或索引陣列
指定要提取哪個或哪些旋轉。 必須指定單一索引器,即如同索引一維陣列或列表。
- 回傳:
- 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. ]])