[英]Filling an empty matrix with a for loop
我正在嘗試使用迭代和方程在 Python 中創建一個 3195x71 矩陣。 代碼參考如下:-
##Creating an empty matrix
import numpy as np
CC_FINAL = np.empty((3195,71))
for i in range(3195):
eB1_s = eB1[i]
Ys = Y.iloc[i]
Y_s = Ys.values.reshape(1,71)
CC_s = np.dot(eB1_s,Y_s)
CClist=CC_s
CCdf=pd.DataFrame(CClist)
CC_final_demand_s=np.add(CC_s,HC,size=(1,71))
print(CC_final_demand_s)
Final_DD = np.concatenate((CC_FINAL,CC_final_demand_s))
print(Final_DD)
等式CC_final_demand_s=np.add(CC_s,HC,size=(1,71))
檢查出來,我得到了我想要的 output。output 看起來像這樣(最多 71 列,3195 次)
0 1 2 3 4 \
1 5913403.203026 214.118854 15892.865306 5379.204602 333.111413
5 6 7 8 9 10 \
1 499.54388 27.436068 8302.752527 293.54779 30.622154 87.851813
11 12 13 14 15 16 \
1 10121.788307 38874.323567 120.792053 46.108922 20.592629 727.064092
17 18 19 20 21 22 \
1 7838.86962 30496.167176 92945.842897 40627.994136 4.506425 8.177975
但是當我試圖將上面方程的結果組合到空矩陣中時,似乎有些事情不正確。 我獲得了Final_DD
的正確尺寸,但 output 不正確。 非常感謝任何建議!
您從CC_FINAL = np.empty((3195,71))
開始,不要更改它。 你看過它的值了嗎? 我懷疑您不了解np.empty
的作用。
在循環中你做
Final_DD = np.concatenate((CC_FINAL,CC_final_demand_s))
那就是將 (3195,71) 數組與 (1,71) 數組連接起來生成 (3196,71),其中大部分行都是垃圾。 你一次又一次地這樣做,而不改變CC_FINAL
或保留Final_DD
。 您只需連接不同的CC_final_demand_s
。 您根本沒有“填寫” CC_FINAL
。
更詳細地研究邏輯。 它可能有助於使 arrays 更小,因此您可以實際查看它們的值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.