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:
rotationRotation Instanz
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.

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.        ]])