顾名思义,它会
numpy.random.multivariate_normal生成正态分布,这意味着在任何给定间隔之外找到点的可能性不为零。您可以生成相关的均匀分布,但这有点复杂。在这里看看两种可能的方法。
如果要使用正态分布,则可以设置sigma,以使半间隔对应3个标准差(如果需要,还可以滤除不良点)。这样,您将在区间内获得约99%的点,例如:
import numpy as npfrom matplotlib.pyplot import scatterxx = 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 # correlationcovs = [[stds[0]**2 , stds[0]*stds[1]*corr], [stds[0]*stds[1]*corr,stds[1]**2]]m = np.random.multivariate_normal(means, covs, 1000).Tscatter(m[0], m[1])
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)