繁体   English   中英

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

[英]Python: Append array columns in a for loop

我有以下问题。

我有几个参数,都是整数或浮点数,我想将它们堆叠在 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]])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM