bir 2 boyutlu dizi vardır:yakın komşu Arama: Python
MyArray = array([6588252.24, 1933573.3, 212.79, 0, 0],
[6588253.79, 1933602.89, 212.66, 0, 0],
etc...)
ilk iki eleman MyArray[0]
ve MyArray[1]
noktaları x ve Y'nin koordinatlarıdır.
dizideki her eleman için, ben X birimlerinin bir yarıçap içindeki tek en yakın komşusu dönmek için hızlı yol bulmak istiyoruz. Bunun 2D uzayda olduğunu varsayıyoruz.
bu örnek için söyleyelim X = 6
.
Her öğeyi diğer öğelere göre karşılaştırarak sorunu çözdüm, ancak listeniz 22k nokta uzunluğundaysa bu 15 dakika kadar sürüyor. Sonunda yaklaşık 30 milyon puanlık bir liste üzerinde çalışmayı umuyoruz.
K-d ağaçları hakkında okudum ve temel kavramları anladım, ancak bunları nasıl betimleyeceğinizi anlamakta sorun yaşadım.
"Kt ağacı" nedir? "K-d ağacı" mı demek istiyorsun? İki boyutlu noktalar için sadece bir [dörtlü] (http://en.wikipedia.org/wiki/Quadtree) gerekir. Python'da quadtree uygulamalarını arayan daha önce bir soru vardı: http://stackoverflow.com/questions/6060302/pure-python-quadtree-implementation –
Teşekkür ederiz! Bir k-d ağacı demek istedim. Dörtlü bir ağaç ararım. – Dlinet
[scipy.spatial'] (http://docs.scipy.org/doc/scipy/reference/spatial.html) modülünde bir k-d ağacı uygulaması var. –