scipy.stats.uniform_direction#
- scipy.stats.uniform_direction = <scipy.stats._multivariate.uniform_direction_gen object>[原始碼]#
向量值均勻方向。
返回隨機方向(單位向量)。dim 關鍵字指定空間的維度。
- 參數:
- dim純量
方向的維度。
- seed{None, int,
numpy.random.Generator
, numpy.random.RandomState
}, 選項性用於繪製隨機變數。如果 seed 為 None,則使用 RandomState 單例。如果 seed 是整數,則使用新的
RandomState
實例,並以 seed 作為種子。如果 seed 已經是RandomState
或Generator
實例,則使用該物件。預設為 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)
繪製隨機方向。