random#
- classmethod Rotation.random(cls, num=None, rng=None)#
- Generate uniformly distributed rotations. - Parameters:
- numint or None, optional
- Number of random rotations to generate. If None (default), then a single rotation is generated. 
- rng{None, int, numpy.random.Generator}, optional
- If rng is passed by keyword, types other than - numpy.random.Generatorare passed to- numpy.random.default_rngto instantiate a- Generator. If rng is already a- Generatorinstance, then the provided instance is used. Specify rng for repeatable function behavior.- If this argument is passed by position or random_state is passed by keyword, legacy behavior for the argument random_state applies: - If random_state is None (or - numpy.random), the- numpy.random.RandomStatesingleton is used.
- If random_state is an int, a new - RandomStateinstance is used, seeded with random_state.
- If random_state is already a - Generatoror- RandomStateinstance then that instance is used.
 - Changed in version 1.15.0: As part of the SPEC-007 transition from use of - numpy.random.RandomStateto- numpy.random.Generator, this keyword was changed from random_state to rng. For an interim period, both keywords will continue to work, although only one may be specified at a time. After the interim period, function calls using the random_state keyword will emit warnings. The behavior of both random_state and rng are outlined above, but only the rng keyword should be used in new code.
 
- Returns:
- random_rotationRotationinstance
- Contains a single rotation if num is None. Otherwise contains a stack of num rotations. 
 
- random_rotation
 - See also - Notes - This function is optimized for efficiently sampling random rotation matrices in three dimensions. For generating random rotation matrices in higher dimensions, see - scipy.stats.special_ortho_group.- Examples - >>> from scipy.spatial.transform import Rotation as R - Sample a single rotation: - >>> R.random().as_euler('zxy', degrees=True) array([-110.5976185 , 55.32758512, 76.3289269 ]) # random - Sample a stack of rotations: - >>> 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]])