gpt4 book ai didi

python - 使用 Numpy 生成随机相关的 x 和 y 点

转载 作者:太空狗 更新时间:2023-10-29 16:53:06 24 4
gpt4 key购买 nike

我想生成相关的 x 和 y 坐标数组,以测试各种 matplotlib 绘图方法,但我在某处失败了,因为我无法获得 numpy.random.multivariate_normal 给我想要的 sample 。理想情况下,我希望我的 x 值介于 -0.51 和 51.2 之间,而我的 y 值介于 0.33 和 51.6 之间(尽管我认为相等的范围是可以的,因为之后我可以限制情节),但我不确定是什么意思( 0, 0?) 和协方差值,我应该使用这些值从函数中获取这些样本。

最佳答案

顾名思义,numpy.random.multivariate_normal 生成正态分布,这意味着在任何给定区间之外找到点的概率为非空。您可以生成相关的均匀分布,但这有点复杂。看看here两种可能的方法。

如果您想使用正态分布,您可以设置 sigmas,使您的半间隔对应于 3 个标准差(如果需要,您也可以过滤掉坏点)。通过这种方式,您将在区间内获得约 99% 的点数,例如:

import numpy as np
from matplotlib.pyplot import scatter

xx = np.array([-0.51, 51.2])
yy = np.array([0.33, 51.6])
means = [xx.mean(), yy.mean()]
stds = [xx.std() / 3, yy.std() / 3]
corr = 0.8 # correlation
covs = [[stds[0]**2 , stds[0]*stds[1]*corr],
[stds[0]*stds[1]*corr, stds[1]**2]]

m = np.random.multivariate_normal(means, covs, 1000).T
scatter(m[0], m[1])

enter image description here

关于python - 使用 Numpy 生成随机相关的 x 和 y 点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18683821/

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