[英]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.