簡體   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