当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。