scipy.spatial.transform.Rotation.

random#

метод класса Вращение.random(cls, число=None, rng=None)#

Генерировать равномерно распределенные вращения.

Параметры:
числоint или None, опционально

Количество случайных поворотов для генерации. Если None (по умолчанию), то генерируется один поворот.

rng{None, int, numpy.random.Generator, опционально

Если rng передается по ключевому слову, типы, отличные от numpy.random.Generator передаются в numpy.random.default_rng для создания экземпляра Generator. Если rng уже является Generator экземпляр, то предоставленный экземпляр используется. Укажите rng для повторяемого поведения функции.

Если этот аргумент передаётся по позиции или random_state передается по ключевому слову, устаревшее поведение для аргумента random_state применяется:

  • Если random_state равно None (или numpy.random), numpy.random.RandomState используется синглтон.

  • Если random_state является int, новый RandomState используется экземпляр, инициализированный с random_state.

  • Если random_state уже является Generator или RandomState экземпляр, тогда этот экземпляр используется.

Изменено в версии 1.15.0: В рамках SPEC-007 переход от использования numpy.random.RandomState to numpy.random.Generator, этот ключевое слово было изменено с random_state to rng. В переходный период оба ключевых слова будут продолжать работать, хотя только одно может быть указано за раз. После переходного периода вызовы функций, использующие random_state ключевое слово будет выдавать предупреждения. Поведение обоих random_state и rng описаны выше, но только rng ключевое слово должно использоваться в новом коде.

Возвращает:
random_rotationRotation экземпляр

Содержит одно вращение, если число равно None. В противном случае содержит стек из число вращения.

Смотрите также

scipy.stats.special_ortho_group

Примечания

Эта функция оптимизирована для эффективной выборки случайных матриц вращения в трёх измерениях. Для генерации случайных матриц вращения в более высоких размерностях см. scipy.stats.special_ortho_group.

Примеры

>>> from scipy.spatial.transform import Rotation as R

Выборка одного вращения:

>>> R.random().as_euler('zxy', degrees=True)
array([-110.5976185 ,   55.32758512,   76.3289269 ])  # random

Выборка стека вращений:

>>> R.random(5).as_euler('zxy', degrees=True)
array([[-110.5976185 ,   55.32758512,   76.3289269 ],  # random
       [ -91.59132005,  -14.3629884 ,  -93.91933182],
       [  25.23835501,   45.02035145, -121.67867086],
       [ -51.51414184,  -15.29022692, -172.46870023],
       [ -81.63376847,  -27.39521579,    2.60408416]])