我有以下问题。
我有几个参数,所有整数或浮点数,我想将它们堆叠在一个for循环中。我试过不同的想法:
for i in range(0,19000):
parameterCombinationsResults = np.array([]).reshape(0,12)
parameterCombinationsResults = np.r_[parameterCombinationsResults,[[self.cR,self.fD,s[0]+1,s[1]+1,self.cI,self.cO,self.fI,self.fO,maxJC,maxSensitivity,maxSpecifity,numberOfCells]]]
问题是,在每次循环迭代中,旧值也会堆叠在一起,因此我在每个循环中都有旧结果+新结果,这将导致数组包含数千个旧结果的副本。有没有像列表附加的方式。我知道数组是不可变的,但也许有一个解决方法?
最后,我想将所有这些参数组合结果保存在csv中。它不必是数组我也会对列表方法感兴趣,重要的是将它们保存在csv中并且它必须非常快。
有一个叫做vstack的numpy方法。这是numpy网站上的一个例子
a = np.array([1, 2, 3])
b = np.array([2, 3, 4])
np.vstack((a,b))
array([[1, 2, 3],[2, 3, 4]])
https://docs.scipy.org/doc/numpy/reference/generated/numpy.vstack.html
将其应用于您的代码会使其看起来像
pcr_stack = parameterCombinationsResults #need to start one for vstack to work
for i in range(0,19000):
pcr_stack = vstack([pcr_stack,[self.cR,self.fD,s[0]+1,s[1]+1,self.cI,self.cO,self.fI,self.fO,maxJC,maxSensitivity,maxSpecifity,numberOfCells]])