【发布时间】:2018-11-19 14:43:13
【问题描述】:
如何创建一个以维度、均值和方差为参数的 numpy 数组?我看到有一个numpy.random.randn 函数允许用户指定尺寸,但该函数假定平均值为 0,方差为 1。
我可以接受均值 0 部分,但我希望能够在每次创建新的 numpy 数组时指定一个方差。
感谢您的帮助!
【问题讨论】:
标签: python arrays numpy random
如何创建一个以维度、均值和方差为参数的 numpy 数组?我看到有一个numpy.random.randn 函数允许用户指定尺寸,但该函数假定平均值为 0,方差为 1。
我可以接受均值 0 部分,但我希望能够在每次创建新的 numpy 数组时指定一个方差。
感谢您的帮助!
【问题讨论】:
标签: python arrays numpy random
您可能正在寻找numpy.random.normal。例如:
import numpy as np
arr = np.random.normal(loc=1, scale=0.50, size=(500, 500))
print(arr.mean()) # 0.9995707343806642
print(arr.std()) # 0.5010967322495354
这里loc代表平均值,scale代表标准差,即方差的平方根。
当然,您是从分布中抽取样本,因此您不会有 1.0 的平均值或 0.50 的标准差,除非您有一个非常大的数组。
【讨论】:
来自 numpy 文档 (numpy.random.randn):
对于来自 的随机样本,当 mu 是均值而 sigma 是方差时(请参阅Normal Distribution),请使用:
sigma * np.random.randn(d0, d1, ..., dn) + mu
当(d0, d1, ..., dn)为生成数组的形状时。
【讨论】: