下面的代码可以生成随机正交矩阵
In [1]: from scipy.stats import ortho_group # Requires version 0.18 of scipy
In [2]: m = ortho_group.rvs(dim=3)
In [3]: m
Out[4]:
array([[-0.23939017, 0.58743526, -0.77305379],
[ 0.81921268, -0.30515101, -0.48556508],
[-0.52113619, -0.74953498, -0.40818426]])
In [5]: np.set_printoptions(suppress=True)
In [6]: m.dot(m.T)
Out[7]:
array([[ 1., 0., -0.],
[ 0., 1., 0.],
[-0., 0., 1.]])