我正在使用 colab。我有一個包含這些值的串列:
cents=[[5.4, 3.9, 1.3, 0.4], [5.8, 2.6, 4.0, 1.2], [7.7, 2.8, 6.7, 2.0]]
我在我的第二個代碼塊中建立了這個串列。
現在,進一步進入我的代碼,我想清除此串列并將值更改為另一個串列中值的平均值。這是我的代碼:
cents=[]
def avg_and_assign(list_1, list_2, list_3):
alc1=np.array(list_1)
alc2=np.array(list_2)
alc3=np.array(list_3)
alc1_mean=np.mean(alc1, axis=0)
alc2_mean=np.mean(alc2, axis=0)
alc3_mean=np.mean(alc3, axis=0)
alc1_mean1=alc1_mean[0:4]
alc2_mean1=alc2_mean[0:4]
alc3_mean1=alc3_mean[0:4]
cent1=np.ndarray.tolist(alc1_mean1)
cent2=np.ndarray.tolist(alc2_mean1)
cent3=np.ndarray.tolist(alc3_mean1)
cents.append(cent1)
cents.append(cent2)
cents.append(cent3)
cents=[cent1,cent2,cent3]
cent_array=np.array(cents)
print(cents)
avg_and_assign(avg_list_cent1, avg_list_cent2, avg_list_cent3)
print(cents)
這是我的輸出:
[[5.4, 3.9, 1.3, 0.4], [5.8, 2.6, 4.0, 1.2], [7.7, 2.8, 6.7, 2.0]]
[[5.4, 3.9, 1.3, 0.4], [5.8, 2.6, 4.0, 1.2], [7.7, 2.8, 6.7, 2.0], [5.005999999999999, 3.4180000000000006, 1.464, 0.2439999999999999], [5.971830985915493, 2.7845070422535207, 4.50281690140845, 1.4901408450704228], [6.972413793103449, 3.0862068965517238, 5.893103448275861, 2.1310344827586207]]
當我將它分配為空時,為什么我的美分串列不會變空?這只能在同一個代碼塊中作業嗎?
我的函式可以將平均值附加到串列中,但我希望美分首先成為一個空白串列。
謝謝。
uj5u.com熱心網友回復:
不要重復自己(“干”)。使用回圈來完成重復性任務。然后,回傳最終串列而不是嘗試使用全域變數。
def avg_and_assign(*lists):
cents = []
for lst in lists:
alc = np.array(lst)
alc_mean = np.mean(alc, axis=0)[:4]
cents.append( np.ndarray.tolist(alc_mean) )
return cents
cents=[cent1,cent2,cent3]
print(cents)
cents = avg_and_assign(avg_list_cent1, avg_list_cent2, avg_list_cent3)
print(cents)
我不清楚你為什么一直在 numpy 陣列之間進行轉換。特別是,為什么回傳一個串列串列而不是一個 ndarrays 串列?
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/311498.html
