當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python SciPy stats.special_ortho_group用法及代碼示例


本文簡要介紹 python 語言中 scipy.stats.special_ortho_group 的用法。

用法:

scipy.stats.special_ortho_group = <scipy.stats._multivariate.special_ortho_group_gen object>#

特殊正交矩陣 (SO(N)) 隨機變量。

返回一個隨機旋轉矩陣,取自 Haar 分布(SO(N) 上唯一的均勻分布),行列式為 +1。

dim 關鍵字指定維度 N。

參數

dim 標量

矩陣的維數

seed {無,int,np.random.RandomState,np.random.Generator},可選

用於繪製隨機變量。如果種子None, 這RandomState使用單例。如果種子是一個 int,一個新的RandomState使用實例,用種子播種。如果種子已經是一個RandomState或者Generator實例,然後使用該對象。默認為None.

注意

此類包裝來自 MDP 工具包 https://github.com/mdp-toolkit/mdp-toolkit 的 random_rot 代碼

返回一個隨機旋轉矩陣,取自 Haar 分布(SO(N) 上唯一的均勻分布)。該算法在論文 Stewart, G.W. 中說明,“The Effective generation of random正交 matrixes with an application to condition estimators”,SIAM Journal on Numerical Analysis, 17(3), pp. 403-409, 1980。有關更多信息,請參閱https://en.wikipedia.org/wiki/Orthogonal_matrix#Randomization

另請參閱類似的 ortho_group 。有關三個維度的隨機旋轉,請參閱 scipy.spatial.transform.Rotation.random

例子

>>> import numpy as np
>>> from scipy.stats import special_ortho_group
>>> x = special_ortho_group.rvs(3)
>>> np.dot(x, x.T)
array([[  1.00000000e+00,   1.13231364e-17,  -2.86852790e-16],
       [  1.13231364e-17,   1.00000000e+00,  -1.46845020e-16],
       [ -2.86852790e-16,  -1.46845020e-16,   1.00000000e+00]])
>>> import scipy.linalg
>>> scipy.linalg.det(x)
1.0

這會從 SO(3) 生成一個隨機矩陣。它是正交的,行列式為 1。

或者,可以調用該對象(作為函數)來修複 dim 參數,返回 “frozen” special_ortho_group 隨機變量:

>>> rv = special_ortho_group(5)
>>> # Frozen object with the same methods but holding the
>>> # dimension parameter fixed.

相關用法


注:本文由純淨天空篩選整理自scipy.org大神的英文原創作品 scipy.stats.special_ortho_group。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。