【问题标题】:Randomly drawing samples from matrix normal distribution in python从python中的矩阵正态分布中随机抽取样本
【发布时间】:2018-09-10 08:49:57
【问题描述】:

有没有办法使用 python 从矩阵正态分布 (https://en.wikipedia.org/wiki/Matrix_normal_distribution#Drawing_values_from_the_distribution) 中随机抽取样本? Numpy 具有从一维正态分布和多元正态分布中绘制的功能,但我在矩阵正态分布上找不到任何东西。谢谢。

【问题讨论】:

    标签: python numpy normal-distribution


    【解决方案1】:

    从您链接的维基百科页面:

    矩阵正态与多元正态分布的关系如下:

    当且仅当

    翻译成numpy,应该是

    numpy.random.multivariate_normal(M.ravel(), np.kron(V, U)).reshape(M.shape)
    

    【讨论】:

    • 这是正确答案。虽然如果维度 n 和 p 很大,您可能需要做一些更花哨的事情来避免计算时间过长。
    【解决方案2】:

    numpy.random.normal() 可以画二维矩阵,只要你这样指定大小:

    numpy.random.normal(loc = mean, scale = standard deviation, size = (m,n))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-02-13
      • 1970-01-01
      • 1970-01-01
      • 2020-08-10
      • 1970-01-01
      • 2018-04-30
      • 1970-01-01
      相关资源
      最近更新 更多