我有一個np數組,X的大小爲1000 x 1000,其中每個元素都是實數。我想查找np數組每行中每個點的5個最近點。這裏距離度量可以是abs(x-y)。我試圖做爲numpy陣列中的每個點找到最接近的k個點
for i in range(X.shape[0]):
knn = NearestNeighbors(n_neighbors=5)
knn.fit(X[i])
for j in range(X.shape[1])
d = knn.kneighbors(X[i,j], return_distance=False)
但是,這不適用於我,我不知道這是如何有效。有沒有解決的辦法?我見過很多比較矢量的方法,但沒有比較單個元素的方法。我知道我可以使用for循環並循環並找到最小的k,但這在計算上會很昂貴。 KD樹能爲此工作嗎?我曾嘗試類似的方法來
Finding index of nearest point in numpy arrays of x and y coordinates
但是,我不能得到這個工作。有沒有一些numpy功能,我不知道這可以做到這一點?
你說的 '最近' 是什麼意思?按價值最近?什麼是「點」? – DyZ
所以說row r = [1,10,11,15,18,16,19,18]。對於r中的每個元素,我想要找到r中具有最接近我們正在查看的元素的其他元素。所以我們看看1並找到與其最接近的k個數字。然後我們看看10,然後找到k最接近的數字,然後....然後找到與其最接近的k個數字。 –
是的,它是一個預測矩陣,所以行是人,列是項目 –