Python:在for循环中追加数组列

时间:2018-03-04 14:57:21

标签: python arrays numpy

我有以下问题。

我有几个参数,所有整数或浮点数,我想将它们堆叠在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中并且它必须非常快。

1 个答案:

答案 0 :(得分:1)

这是一个名为vstack的numpy方法。这是来自numpy网站的一个例子

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]])

https://docs.scipy.org/doc/numpy/reference/generated/numpy.vstack.html

将此应用于您的代码会使其看起来像

{{1}}
相关问题