scipy.spatial.transform.Rotation.
__getitem__#
- Вращение.__getitem__(self, индексатор)#
Извлечение вращения(ий) по заданному(ым) индексу(ам) из объекта.
Создать новый
Rotationэкземпляр, содержащий подмножество вращений, хранящихся в этом объекте.- Параметры:
- индексаториндекс, срез или массив индексов
Указывает, какое(ие) вращение(я) извлечь. Должен быть указан один индексатор, т.е. как при индексации одномерного массива или списка.
- Возвращает:
- вращение
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. ]])