scipy.stats.uniform_direction#

scipy.stats.uniform_direction = <scipy.stats._multivariate.uniform_direction_gen object>[原始碼]#

向量值均勻方向。

返回隨機方向(單位向量)。dim 關鍵字指定空間的維度。

參數:
dim純量

方向的維度。

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

用於繪製隨機變數。如果 seedNone,則使用 RandomState 單例。如果 seed 是整數,則使用新的 RandomState 實例,並以 seed 作為種子。如果 seed 已經是 RandomStateGenerator 實例,則使用該物件。預設為 None

註解

此分佈產生均勻分佈在超球面表面上的單位向量。這些可以解釋為隨機方向。例如,如果 dim 為 3,則將從 \(S^2\) 的表面採樣 3D 向量。

參考文獻

[1]

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

範例

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

這會產生一個隨機方向,即 \(S^2\) 表面上的向量。

或者,可以呼叫物件(作為函數)以返回具有固定 dim 參數的凍結分佈。在這裡,我們建立一個 uniform_direction,其中 dim=3 並繪製 5 個觀察值。然後將樣本排列在形狀為 5x3 的陣列中。

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

方法

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

繪製隨機方向。