我有以下代碼,旨在連接回圈內生成的陣列,并在進入回圈之前啟動一個空陣列。出于說明目的,我只是讓回圈只有一次迭代。但是,我發現result_array仍然包含初始的空陣列。我不清楚如何解決這個問題,是否可以在不設定初始空陣列的情況下附加回圈中生成的陣列?為了重現問題,我包括代碼和運行截圖。
import numpy as np
import hdmedians as hd
x = np.random.rand(5,10,2)
result_array = np.empty((1,2),float)
for i in range(1):#x.shape[1]):
print('i----',i)
x1 = x[:,i,:]
print(x1)
x2 = hd.medoid(x1,axis=0)
x2 = x2.reshape((1,2))
print(x2)
print('---------')
result_array = np.append(result_array, x2, axis =0 )

uj5u.com熱心網友回復:
我不知道 hdmedians 的 API,所以我不能真正建議一個矢量代碼(如果可能的話),但你可以用以下代碼替換你append的回圈(效率低下):
np.vstack([hd.medoid(x[:,i,:], axis=0)
for i in range(x.shape[1])])
輸出:
array([[0.3595079 , 0.43703195],
[0.60276338, 0.54488318],
[0.4236548 , 0.64589411],
[0.52324805, 0.09394051],
[0.52184832, 0.41466194],
[0.57019677, 0.43860151],
[0.45615033, 0.56843395],
[0.20887676, 0.16130952],
[0.65310833, 0.2532916 ],
[0.46631077, 0.24442559]])
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/466421.html
標籤:python-3.x 熊猫 麻木的 scipy numpy-ndarray
上一篇:python中串列追加的差異
