我正试图使用迭代和方程在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))
检验出来,我得到了我想要的输出。输出是这样的(多达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
的正确尺寸,但输出不正确。非常感谢您的任何建议!
您从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
。你不是";填充";CCD_ 8。
更详细地研究逻辑。它可能有助于制作更小的数组,这样您就可以实际查看它们的值。