从python中的矩阵正态分布中随机抽取样本

Ale*_*lex 1 python numpy normal-distribution

有没有一种方法可以使用python 从矩阵正态分布(https://en.wikipedia.org/wiki/Matrix_normal_distribution#Drawing_values_from_the_distribution)中随机抽取样本?Numpy具有从一维正态分布和多元正态分布中提取的功能,但是我在矩阵正态分布中找不到任何内容。谢谢。

Eri*_*ric 7

在Wikipedia页面上,您链接:

矩阵正态通过以下方式与多元正态分布相关:

\ mathbf {X} \ sim \ mathcal {MN} _ {n \ times p}(\ mathbf {M},\ mathbf {U},\ mathbf {V}),

当且仅当

\ mathrm {vec}(\ mathbf {X})\ sim \ mathcal {N} _ {np}(\ mathrm {vec}(\ mathbf {M}),\ mathbf {V} \ otimes \ mathbf {U})

翻译成numpy,应该是

numpy.random.multivariate_normal(M.ravel(), np.kron(V, U)).reshape(M.shape)
Run Code Online (Sandbox Code Playgroud)