亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將“while”循環中的數據存儲在數組中

將“while”循環中的數據存儲在數組中

紅顏莎娜 2022-04-23 21:55:06
我寫了一個代碼,我想用它來減少測量數據。為此,我遍歷了 30 組測量數據。在每次迭代中,我使用fsolve求解一組三個非線性方程。這給了我一個包含三個值的數組,然后進一步處理這些值(在下面的示例中lbda,alp, bta, dlt, q, N)。我可以打印結果,但需要在 30 x 6 數組中收集所有 30 個周期的數據,以進行一些統計(即 6 個變量中的每一個的 np.mean)。在每次迭代結束時,我已經嘗試了對我來說最明顯的函數np.append, np.vstack,np.concatenates但這只會給我一個 1 x 6 數組,其中僅包含最后一個迭代步驟,而不是包含所有 30 次迭代的所需數組腳步。# loading data above m1 = data_arr_blkcorr [:,4] / data_arr_blkcorr [:,2]m2 = data_arr_blkcorr [:,5] / data_arr_blkcorr [:,2] m3 = data_arr_blkcorr [:,7] / data_arr_blkcorr [:,2]N=-1while (N<29):    N = N+1     T1 = 79.744440299369400     T2 = 4.756431967877120     T3 = 195.146815878103000     T4 = 1.333609171398     T5 = 0.540566631391     T6 = 1     T7 = 1.731261585620     T_all = np.array([T4, T5, T6, T7, T1, T2, T3])    n1 = 0.598169735     n2 = 1.509919737     n3 = 0.600477235     n4 = 0.9364071191658     n5 = 0.5815716133216     n6 = 1     n7 = 1.0455228260642     n_all = np.array([n4, n5, n6, n7, n1, n2, n3])    I1 = 94.905838    I2 = 96.906018    I3 = 97.905405    I4 = 99.907473    I5 = 91.90681    I6 = 93.90509    I7 = 95.90468# some definition of variables here    A11 = T1-n1    A12 = T2-n2    A13 = T3-n3    A21 = -n1*P1    A22 = -n2*P2    A23 = -n3*P3    A31 = m1[N] * P1    A32 = m2[N] * P2    A33 = m3[N] * P3    b11 = m1[N] - n1    b12 = m2[N] - n2    b13 = m3[N] - n3# some definition of variables here    T = np.array ([T1, T2, T3])    n = np. array([n1, n2, n3])    m = np.array([m1[N], m2[N], m3[N]])    P = np.array([P1, P2, P3])    def F(x):        return x[0]*T + (1-x[0])*n*np.exp(-x[1]/(1-x[0])*P) - m*np.exp(-x[2]*P)     y = fsolve(F, guess)    lbda = y[0]    alp = y[1]/(1-y[0])    bta = y[2]    dlt = (np.exp(-alp*P2)-1)*1000    N_all = n_all * np.exp(-alp*P_all)    q = (1 + (1 - lbda) / lbda * np.sum(N_all) / np.sum(T_all))**(-1)    print (lbda, alp, bta, dlt, q, N) 瀏覽帖子我也使用過這個(根據 Koke Cacao 提供的建議):data_sum = Nonenew_data = [lbda, alp, bta, dlt, q, N]data_sum = np.append([data_sum], new_data) if data_sum is not None else new_dataprint(data_sum)
查看完整描述

2 回答

?
胡子哥哥

TA貢獻1825條經驗 獲得超6個贊

嘗試在您的 while 循環之外創建一個空列表,然后附加該數組。


solution = []

while n < 29:

    #your code here

    solution.append([lbda, alp, bta, dlt, q, N])


查看完整回答
反對 回復 2022-04-23
?
繁花不似錦

TA貢獻1851條經驗 獲得超4個贊

您應該在 while 循環范圍之外聲明一個空列表,然后在每次迭代時附加到它:


result = []

while(N<29):

   # calculate something

   result.append(your_data)


print(result)   # that will give you all the data that you got from each Iteration


查看完整回答
反對 回復 2022-04-23
  • 2 回答
  • 0 關注
  • 291 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號