2016-01-27 122 views
1

我計算與numpy的/ SciPy的矩陣是這樣的:用numpy計算距離矩陣的更快方法是什麼?

cost = np.empty([chroma1.data.shape[1], chroma2.data.shape[1]]) 

for x, cx in enumerate(chroma1.transpose()): 
    for y, cy in enumerate(chroma2.transpose()): 
     cost[x, y] = sp.distance.euclidean(cx, cy) 

這需要時間相當的量。是否有任何numpy/scipy函數可以讓我擺脫兩個嵌套循環?

回答

2

看起來你正在計算距離矩陣。 scipy.spatial.distance包含幾個專門的,優化的功能,以做到這一點。

你的情況:

cost = scipy.spatial.distance.cdist(chroma1.T, chroma2.T) 

應該做的正是你想要的。

+0

完美,這就是我一直在尋找。謝謝。 – sonovice

相關問題