我有all_data一個大小為(2,601),NUM_SAMPLES = 601和的 numpy 陣列NUM_CLUSTERS = 3。是否有任何向量形式可以構建f (一個(601,9)numpy 陣列)而不是使用嵌套的 for 回圈,如下所示?
f = np.empty((0,9), float)
for n in range(NUM_SAMPLES):
f_n = np.array([[]])
for m in range(NUM_CLUSTERS):
f_n = np.hstack( (f_n , z_i(alldata[:,n], m).T))
f = np.concatenate((f, f_n) , axis=0)
注意:呼叫函式時z_i(alldata[:,n], m),它回傳一個(3,1)numpy 陣列。
f在下面的公式中應該是'F':
f的公式
uj5u.com熱心網友回復:
因為您z_i在回圈中間有一些函式,所以您或多或少會被回圈困住。你不需要像你正在做的那樣做一堆非常低效的連接,但是你的陣列大小太小了,可能無關緊要。
f = np.vstack((np.hstack((z_i(alldata[:,n], m).T for m in range(NUM_CLUSTERS)))
for n in range(NUM_SAMPLES)))
如果你真的想讓它運行得更快,你必須研究z_i并改變它的作業方式。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/372132.html
