簡體   English   中英

用 for 循環填充空矩陣

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM