scipy.spatial.transform.Rotation.
__getitem__#
- Rotation.__getitem__(self, indexer)#
Extrahiert Rotation(en) am gegebenen Index (oder den gegebenen Indizes) aus dem Objekt.
Erstellt eine neue
Rotation-Instanz, die eine Teilmenge der in diesem Objekt gespeicherten Rotationen enthält.- Parameter:
- indexerIndex, Slice oder Index-Array
Gibt an, welche Rotation(en) extrahiert werden sollen. Ein einzelner Indexer muss angegeben werden, d.h. so, als würde man ein eindimensionales Array oder eine Liste indizieren.
- Rückgabe:
- rotation
RotationInstanz - Enthält
eine einzelne Rotation, wenn indexer ein einzelner Index ist
ein Stapel von Rotation(en), wenn indexer ein Slice oder ein Index-Array ist.
- rotation
- Löst aus:
- TypeError, wenn die Instanz als einzelne Rotation erstellt wurde.
Beispiele
>>> 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. ]])
Indizierung mit einem einzelnen Index
>>> a = rs[0] >>> a.as_quat() array([0.70710678, 0.70710678, 0. , 0. ])
Array-Slicing
>>> b = rs[1:3] >>> b.as_quat() array([[ 0. , 0.70710678, 0. , 0.70710678], [ 0.57735027, 0.57735027, -0.57735027, 0. ]])
Listen-Komprehension, um jede Rotation in ein eigenes Objekt aufzuteilen
>>> 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. ])]
Die Verkettung von aufgeteilten Rotationen stellt das ursprüngliche Objekt wieder her
>>> 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. ]])