我对全局numpy数组有一些问题:
d = 2
n = 20
samples = np.empty([0,d])
weights = []
def read_input(n):
npoints = mg.sample(n) #returns a d-dimensional np array of random numbers
global samples
samples = np.vstack((samples,npoints))
print samples
return (npoints)
现在调用read_input以我想要的方式打印样本(每次将npoints附加到全局样本)并返回npoints。但是打电话给
print samples
函数外部的只打印一个空数组[]。
有谁知道为什么会这样?我用常规列表测试了它,并且.extend工作得很好。它只是导致麻烦的numpy阵列。
提前致谢。
编辑:
这里是可运行代码的示例数据:
import numpy as np
d = 2
n = 20
samples = np.empty([0,d])
weights = []
def read_input(a):
npoints = [[1.02, 0.50],[0.98, 0.56],[0.38, 2.29],[0.53, 0.12]]
global samples
samples = np.vstack((samples,npoints))
print samples
return (npoints)
我刚注意到,如果我将函数调用和打印样本直接写入.py文件,它就可以了。之前我只是在ipython中手动输入它。所以我想我刚刚解决了这个问题。
非常感谢:)