scipy.spatial.transform.Rotation.

random#

classmethod Rotation.random(cls, num=None, rng=None)#

Generiert gleichverteilte Rotationen.

Parameter:
numint oder None, optional

Anzahl der zu generierenden Zufallsrotationen. Wenn None (Standard), wird eine einzelne Rotation generiert.

rng{None, int, numpy.random.Generator}, optional

Wenn rng als Schlüsselwort übergeben wird, werden andere Typen als numpy.random.Generator an numpy.random.default_rng übergeben, um einen Generator zu instanziieren. Wenn rng bereits eine Generator-Instanz ist, dann wird die bereitgestellte Instanz verwendet. Geben Sie rng für reproduzierbares Funktionsverhalten an.

Wenn dieses Argument positional übergeben wird oder random_state als Schlüsselwort übergeben wird, gilt das ältere Verhalten für das Argument random_state.

  • Wenn random_state None ist (oder numpy.random), wird die Singleton-Instanz numpy.random.RandomState verwendet.

  • Wenn random_state eine Ganzzahl ist, wird eine neue RandomState-Instanz verwendet, die mit random_state initialisiert wurde.

  • Wenn random_state bereits eine Generator- oder RandomState-Instanz ist, wird diese Instanz verwendet.

Geändert in Version 1.15.0: Als Teil des SPEC-007-Übergangs von der Verwendung von numpy.random.RandomState zu numpy.random.Generator wurde dieses Schlüsselwort von random_state in rng geändert. Für eine Übergangszeit werden beide Schlüsselwörter weiterhin funktionieren, obwohl nur eines gleichzeitig angegeben werden kann. Nach der Übergangszeit geben Funktionsaufrufe mit dem Schlüsselwort random_state Warnungen aus. Das Verhalten von sowohl random_state als auch rng wird oben beschrieben, aber nur das Schlüsselwort rng sollte im neuen Code verwendet werden.

Rückgabe:
random_rotationRotation-Instanz

Enthält eine einzelne Rotation, wenn num None ist. Andernfalls enthält es einen Stapel von num Rotationen.

Hinweise

Diese Funktion ist für die effiziente Stichprobenentnahme von zufälligen Rotationsmatrizen in drei Dimensionen optimiert. Für die Generierung von zufälligen Rotationsmatrizen in höheren Dimensionen siehe scipy.stats.special_ortho_group.

Beispiele

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

Einzelne Rotation abtasten

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

Stapel von Rotationen abtasten

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