Python - 如何使用 Scipy.Stats.Multivariate_Normal 生成高斯随机向量
Python - How to generate a Gaussian Random Vector using Scipy.Stats.Multivariate_Normal
我想做和
一样的事情
x = np.random.multivariate_normal(mean, cov, (n, 1))
其中 mean 是一个长度为 n 的向量,cov 是一个 nxn 方阵,但是 scipy.stats.multivariate_normal 而不是
要从 scipy.stats
中的分布中抽样,请使用 .rvs
方法。
示例:
>>> from scipy import stats
>>>
>>> n = 3
>>> mn = np.random.random(n)
>>> cov = np.random.random((2*n, n)) - 0.5
>>> cov = cov.T@cov
>>>
>>> frzn = stats.multivariate_normal(mn, cov)
>>> frzn
<scipy.stats._multivariate.multivariate_normal_frozen object at 0x7f156ea782b0>
>>> frzn.rvs(n)
array([[ 1.38391348, 0.65518546, -0.79541539],
[ 0.36422157, -0.49308578, 0.94995824],
[-0.73152442, -0.06003768, -0.28373662]])
我想做和
一样的事情x = np.random.multivariate_normal(mean, cov, (n, 1))
其中 mean 是一个长度为 n 的向量,cov 是一个 nxn 方阵,但是 scipy.stats.multivariate_normal 而不是
要从 scipy.stats
中的分布中抽样,请使用 .rvs
方法。
示例:
>>> from scipy import stats
>>>
>>> n = 3
>>> mn = np.random.random(n)
>>> cov = np.random.random((2*n, n)) - 0.5
>>> cov = cov.T@cov
>>>
>>> frzn = stats.multivariate_normal(mn, cov)
>>> frzn
<scipy.stats._multivariate.multivariate_normal_frozen object at 0x7f156ea782b0>
>>> frzn.rvs(n)
array([[ 1.38391348, 0.65518546, -0.79541539],
[ 0.36422157, -0.49308578, 0.94995824],
[-0.73152442, -0.06003768, -0.28373662]])