我对我从numpy.random.multivariate_normal
得到的答案感到困惑:
我有一个50行的文件(mean1 mean2 standard\u dev1 standard\u dev2),我想在这个概率分布中生成大量的随机点。你知道吗
下面是我正在使用的代码片段:
data = np.loadtxt(usefile)
# calculate average and standard deviation
gauss_vals = np.array([])
N = 100
for i in range(len(data)):
mean = (data[:,0][i], data[:,2][i])
cov = [[(data[:,1][i]**2), 0], [0, (data[:,3][i]**2)]]
dat_gauss = np.random.multivariate_normal(mean, cov, (N,1))
output_outfile.write(str(dat_gauss) + '\n')
# END
当N=100(或更少)时,代码工作并生成正确的行数。但是,当N增加到100以上(比如说1000)时,代码就完成了,但只生成300行,infile中每行6行。你知道吗
这是内存问题还是random.multivariate_normal
中的bug,如何生成此代码,使N=1000000?你知道吗
谢谢你
帕迪
问题一定来自
str(dat_gauss)
如果你有一个足够大的数组,str(np.array)
的结果会是因此,必须显式地将数据的每个项写入文件或
numpy.savetxt
https://docs.scipy.org/doc/numpy-1.14.0/reference/generated/numpy.savetxt.html相关问题 更多 >
编程相关推荐