gpt4 book ai didi

python - numpy中的随机正态分布矩阵

转载 作者:行者123 更新时间:2023-12-02 17:57:11 27 4
gpt4 key购买 nike

我想生成一个矩阵M,其元素M(i,j)来自标准正态分布。一种简单的方法是

import numpy as np

A = [ [np.random.normal() for i in range(3)] for j in range(3) ]
A = np.array(A)
print(A)

[[-0.12409887 0.86569787 -1.62461893]
[ 0.30234536 0.47554092 -1.41780764]
[ 0.44443707 -0.76518672 -1.40276347]]

但是,我在玩numpy,遇到了另一个“解决方案”:
import numpy as np
import numpy.matlib as npm

A = np.random.normal(npm.zeros((3, 3)), npm.ones((3, 3)))
print(A)

[[ 1.36542538 -0.40676747 0.51832243]
[ 1.94915748 -0.86427391 -0.47288974]
[ 1.9303462 -1.26666448 -0.50629403]]

我读了 numpy.random.normaldocument,它说它并不清楚当传递矩阵而不是单个值时该函数如何工作。我怀疑在第二个“解决方案”中我可能是从多元正态分布中提取的。但这不是真的,因为输入参数都具有相同的维数(协方差应该是矩阵,均值是 vector )。不知道第二个代码正在生成什么。

最佳答案

做您想要的事的预期方法是

A = np.random.normal(0, 1, (3, 3))

这是可选的 size参数,它告诉numpy您想要返回的形状(在这种情况下为3乘3)。

您的第二种方法也可以工作,因为文档指出

If size is None (default), a single value is returned if loc and scale are both scalars. Otherwise, np.broadcast(loc, scale).size samples are drawn.



因此,没有多元分布,也没有相关性。

关于python - numpy中的随机正态分布矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64444003/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com