gpt4 book ai didi

python - 从 N 个均值和 N 个西格玛的列表中生成 N 个样本的数组

转载 作者:太空宇宙 更新时间:2023-11-04 02:33:50 25 4
gpt4 key购买 nike

我有一个大小为 N 的 numpy 数组,其中包含 [x,y] 像素位置。我想在 x 和 y 方向上稍微移动每个像素。我想要实现的是使用每个 x 值作为平均值,并从具有可配置 sigma 的正态分布中随机选择它周围的新值。对新的 y 值也是如此

我的问题是我必须为每个像素循环并繁琐地使用以下内容:

for i in range(len(pixels)):
pixel = pixels[i]
x = pixel[0]
y = pixel[1]
new_x = numpy.random.normal(x, std_deviation_x)
new_y = numpy.random.normal(y, std_deviation_y)
pixel[i][0] = new_x
pixel[i][1] = new_y

我想知道是否有一种方法或任何随机函数实现接受均值列表和 sigma 列表以返回 N 个样本列表,其中每个样本在列表中具有相应的均值和 sigma

最佳答案

scipy.stats.norm 接受向量参数:

>>> from scipy import stats
>>>
# mean = 0, 1, -1 - std = 1, 2, 2
# we draw 10,000 samples per parameter set to validate the mean ...
>>> stats.norm([0, 1, -1], [1, 2, 2]).rvs((10000, 3)).mean(axis=0)
array([ 0.02597611, 1.01131576, -0.9446429 ])
# ... and the std
>>> stats.norm([0, 1, -1], [1, 2, 2]).rvs((10000, 3)).std(axis=0)
array([ 0.99299587, 2.0055516 , 1.99656472])
# if you need just one sample per parameter set:
>>> stats.norm([0, 1, -1], [1, 2, 2]).rvs()
array([-1.23528454, 3.77990026, -3.49572846])

关于python - 从 N 个均值和 N 个西格玛的列表中生成 N 个样本的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48419408/

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