scipy.stats.uniform_direction#

scipy.stats.uniform_direction = <scipy.stats._multivariate.uniform_direction_gen Objekt>[Quelle]#

Ein vektorwertige gleichmäßige Richtung.

Gibt eine zufällige Richtung (Einheitsvektor) zurück. Das Schlüsselwort dim gibt die Dimensionalität des Raums an.

Parameter:
dimSkalar

Dimension der Richtungen.

seed{None, int, numpy.random.Generator,

Wird zum Ziehen von Zufallsvarianten verwendet. Wenn seed None ist, wird die RandomState Singleton verwendet. Wenn seed eine Ganzzahl ist, wird eine neue RandomState-Instanz verwendet, die mit seed initialisiert wird. Wenn seed bereits eine RandomState- oder Generator-Instanz ist, wird dieses Objekt verwendet. Standard ist None.

Methoden

rvs(dim=None, size=1, random_state=None)

Zufällige Richtungen ziehen.

Hinweise

Diese Verteilung erzeugt Einheitsvektoren, die gleichmäßig auf der Oberfläche einer Hypersphäre verteilt sind. Diese können als zufällige Richtungen interpretiert werden. Wenn zum Beispiel dim 3 ist, werden 3D-Vektoren von der Oberfläche von \(S^2\) gezogen.

Referenzen

[1]

Marsaglia, G. (1972). „Choosing a Point from the Surface of a Sphere“. Annals of Mathematical Statistics. 43 (2): 645-646.

Beispiele

>>> import numpy as np
>>> from scipy.stats import uniform_direction
>>> x = uniform_direction.rvs(3)
>>> np.linalg.norm(x)
1.

Dies erzeugt eine zufällige Richtung, einen Vektor auf der Oberfläche von \(S^2\).

Alternativ kann das Objekt (als Funktion) aufgerufen werden, um eine eingefrorene Verteilung mit festem dim-Parameter zurückzugeben. Hier erstellen wir eine uniform_direction mit dim=3 und ziehen 5 Beobachtungen. Die Stichproben werden dann in einem Array der Form 5x3 angeordnet.

>>> rng = np.random.default_rng()
>>> uniform_sphere_dist = uniform_direction(3)
>>> unit_vectors = uniform_sphere_dist.rvs(5, random_state=rng)
>>> unit_vectors
array([[ 0.56688642, -0.1332634 , -0.81294566],
       [-0.427126  , -0.74779278,  0.50830044],
       [ 0.3793989 ,  0.92346629,  0.05715323],
       [ 0.36428383, -0.92449076, -0.11231259],
       [-0.27733285,  0.94410968, -0.17816678]])