鑑於這種......矢量化評估,廣播單元方式操作
我要解釋這個代碼做什麼,知道它執行F的量化評估,利用廣播,元素明智的操作理念......
def F(x_pos, alpha):
D = x_pos.reshape(1,-1) - x_pos.reshape(-1,1)
return (1./alpha) * (alpha.reshape(1,-1) * R(D)).sum(axis=1)
我的解釋是:
函數F的第一行接收x_pos和alpha作爲參數(均爲numpy數組),在第二行中,通過廣播計算矩陣D(基本操作,如數組中的加法numpy是元素執行的,即元素但如果numpy可以將它們轉換成其他尺寸相同的其他尺寸,那麼也可以使用不同大小的arranys,這種轉換稱爲廣播),將Nx1的另一個序列減去1xN的序列,得到矩陣D的包含x_j - x_1,x_j - x_2等等的順序NxN作爲元素,最後,在最後一行中計算alpha的倒數(顯然是一種排列),其中每個元素乘以每個元素的R評估值之和矩陣D的單元格水平地乘以alpha_j(由於參數中的軸= 1)
問題:
- 考慮到我是新來的Python,我的解釋好嗎?
- 該代碼有錯誤或沒有?因爲我沒有看到每個數字中的「j必須與1,2,...,n不同」在代碼中被考慮到......並且如果它實際上是錯誤的......我該如何修復該代碼與圖像中所陳述的完全相同?
'X_POS [:,無] - x_pos'幾乎肯定會慢一些,因爲它具有解析切片,而是僅由具有可忽略的恆定量,並且肯定是更地道 – Eric
Divakar ...謝謝你,但我覺得你沒看過我的問題... – OiciTrap
@Oici看看編輯的文本和代碼有意義嗎? – Divakar