Scipy Algorytmy przestrzenne

Scipy Algorytmy przestrzenne

Języki programowania wysokiego poziomu są w większości oparte na strukturach danych i modułach obiektowych. Struktura programowania zorientowana na obiekty znacznie ułatwia programistom pisanie zoptymalizowanych, prostych i ustrukturyzowanych kodów. Dane przestrzenne lub algorytmy są również formą struktury danych, która reprezentuje dane w przestrzeni geometrycznej. Algorytmy przestrzenne są bardzo powszechnie stosowane do obliczenia triangulacji i wypukłych kadłubów zestawu punktowego. Algorytmy te są również wykorzystywane do obliczenia odległości między różnymi matrycami i dostarczania implementacji KDTREE dla zapytań najbliższych sąsiadów. Ten przewodnik ma na celu zbadanie algorytmów przestrzennych Scipy, aby zrozumieć, jak zarządzać danymi w przestrzeni geometrycznej.

Co to są dane przestrzenne?

Dane THAE reprezentowane w przestrzeni geometrycznej, podobnie jak punkty w układzie współrzędnych, są powszechnie znane jako dane przestrzenne. Wiele zadań można wykonać w przypadku danych przestrzennych w układzie współrzędnych. Scipy jest jedną z niesamowitych bibliotek Python, która jest powszechnie używana do funkcji matematycznych i statystycznych i oferuje Scipy.pakiet przestrzenny. Jest często używany do danych przestrzennych i algorytmów. Jak omówiliśmy, algorytmy przestrzenne są wykorzystywane do przeprowadzenia triangulacji, implementacja KDTREE dla najbliższych zapytań punktowych, diagramu Voronoi itp. Wyjaśnijmy więc każde obliczenia za pomocą przykładów.

Przykład 1:

W tym przykładzie wyjaśnimy, jak wykonać triangulację z Scipy.pakiet przestrzenny. Rozważ ten przykład i dowiedz się, jak działa algorytm przestrzenny w celu obliczenia triangulacji Delaunay. Zobacz przykładowy kod w następującym fragmencie kodu:

importować Numpy jako NP
importować matplotlib.Pyplot as Plt
od Scipy.Import przestrzenny Delaunay
tablice = NP.tablica ([[3, 4], [0, 2],
[1, 4], [2, 0],
[3, 2], [4, 3]])
simpls = Delaunay (tablice).Proste
plt.Triplot (tablice [:, 0], tablice [:, 1], proste)
plt.rozproszenie (tablice [: 0], tablice [:, 1], kolor = „g”)
plt.pokazywać()

Program zaczyna się od importu biblioteki Numpy jako NP i Matplotlib.pakiet pyplot jako plt. Następnie scipia.Pakiet przestrzenny jest importowany jako Delaunay. Po zaimportowaniu wszystkich pakietów w programie tablica jest zadeklarowana i przechowywana w zmiennej „tablicy”. Po zdefiniowaniu punktów tablicy zmienna „tablicy” jest przekazywana do funkcji Delaunay, aby obliczyć proste. Aby wykreślić punkty danych, używane są funkcje Triplota i Rozproszenia. Aby wyświetlić wykreślone punkty, PLT.show () funkcja jest używana. Zobaczmy teraz, jaki wykres triangulacji Delaunay produkuje Scipy.przestrzenny.Funkcja Delaunay. Zobacz następujące dane wyjściowe:

Przykład 2:

Kolejne zadanie, które może wykonać Scipy. Funkcją przestrzenną jest znalezienie wypukłego kadłuba zestawu punktów. Podane punkty, które wytwarzają najmniejszy wielokąt, są znane jako wypukłe kadłuby. Aby wykonać wypukłe kadłuby, Python zapewnia funkcję convexhull () z scipy.pakiet przestrzenny. W tym przykładzie napiszemy kod zawierający funkcję Convexhull (), aby pomóc Ci zrozumieć, w jaki sposób możesz użyć tej funkcji w programie zgodnie z Twoimi potrzebami. Rozważ przykładowy kod w następującym fragmencie kodu:

importować Numpy jako NP
importować matplotlib.Pyplot as Plt
od Scipy.Sprzedalny import wypukły
tablice = NP.tablica ([[3, 4], [0, 2],
[1, 4], [2, 0],
[3, 2], [4, 3]])
CH = Convexhull (tablice)
CHP = CH.Proste
plt.rozproszenie (tablice [:, 0], tablice [:, 1])
Dla simplex w CHP:
plt.Wykres (tablice [simplex, 0], tablice [simplex, 1], „k-”)
plt.pokazywać()

Najpierw importujemy bibliotekę Numpy jako NP do programu i matplotlib.pakiet pyplot jako plt. Konwertujemy również Scipy.Pakiet przestrzenny do importowania wypukłego modułu. Punkty tablicy są zadeklarowane w zmiennej „tablicy” i przekazywane do funkcji Convexhull (). Następnie nazywany jest moduł Simplices. Aby wykreślić punkty tablicy, funkcja rozproszenia () jest wywoływana. Pętla „for” służy do wykreślenia każdego punktu w przestrzeni geometrycznej. Punkty wykresu są pokazane w przestrzeni geometrycznej za pomocą funkcji show (). Zobacz następujący wykres wykreślony:

Przykład 3:

Następna funkcja oferowana przez Scipy.Pakiet przestrzenny to implementacja KDTREE dla najbliższych pytań z punktu sąsiedniego. Teraz napiszmy program wykorzystujący metodę KDTREE SCIPY.pakiet przestrzenny, aby znaleźć najbliższego sąsiada w danej przestrzeni geometrycznej.

od Scipy.Kdtree importu przestrzennego
PNT = NP.losowy.Rand (50,3)
kdt = kdtree (PNT)
res = kdt.zapytanie ((2, 1, 5))
Drukuj (res)

Najpierw nazywamy Scipy.Pakiet przestrzenny do zaimportowania modułu KDTREE do programu. Następnie definiujemy punkty dla przestrzeni geometrycznej. Tutaj używamy funkcji losowej, aby uzyskać punkty dla przestrzeni geometrycznej i przekazać te punkty do funkcji Kdtree (), aby znaleźć najbliższego sąsiada w danej przestrzeni geometrycznej. Zobaczmy teraz, jaki wynik jest wytwarzany przez funkcję KDTREE. Zobacz wynik następujący zrzut ekranu:

Przykład 4:

Kolejna funkcja scipy.Pakiet przestrzenny, który zamierzamy wyjaśnić, to punkty Coplanar. Punkty Coplanar to punkty, które są wykreślane w tej samej płaszczyźnie. Mogą mieć co najmniej trzy lub więcej trzech punktów. Teraz napiszmy program, który wykonywa punkty Coplanar w przestrzeni geometrycznej.

importować Numpy jako NP
od Scipy.Import przestrzenny Delaunay
tablice = NP.tablica ([[0, 0], [0, 0], [1, 1],
[1, 1], [0, 1], [1, 0],
])
COP = Delaunay (tablice)
Drukuj (gliniarz.proste)
Drukuj („\ n”)
Drukuj (gliniarz.współpłaszczyznowy)

Ponownie wymagane biblioteki są importowane do programu w celu wykonania. Pierwsza biblioteka to Numpy, a druga biblioteka to Scipy. Pakiet Delaunay jest importowany do programu, aby można było użyć funkcji Coplanar. Punkty danych są zadeklarowane w tablicy, która jest przekazywana do funkcji Delaunay. Następnie moduł Coplanar jest wywoływany, aby uzyskać punkty Coplanar w przestrzeni geometrycznej. Punkty Coplanar podano na poniższym zrzucie ekranu. Zobacz dane wyjściowe następujące:

Przykład 5:

Scipy.Pakiet przestrzenny służy również do obliczenia wskaźników odległości w odległości euklidesowej, nauce danych itp. Matryca odległości odnosi się nie tylko do odległości między dwoma punktami, ale także odnosi się do kąt lub wykr. Wydajność różnych algorytmów uczenia maszynowego, takich jak K-śred. Wysoki zależy od wartości macierzy odległości. Obliczmy metrykę odległości z funkcją odległości euklidesowej. Rozważ następujący przykładowy kod:

od Scipy.przestrzenny.import odległości euklidesowy
Point1 = (10, 5)
Point2 = (2, 6)
matryca = euklidean (Point1, Point2)
Drukuj (matryca)

Moduł euklidesowy jest dostarczany przez Scipy.przestrzenny.pakiet odległości, aby odpowiednio zaimportowany do programu. Dwa punkty do znalezienia macierzy odległości są zdefiniowane w zmiennych punktu 1 i Point2. Zdefiniowane punkty są przekazywane do funkcji euklidesowej i wyświetlane za pomocą polecenia wydruku. Zobacz następującą obliczoną wartość macierzy odległości:

Wniosek

W tym artykule zaprogramowaliśmy dane przestrzenne Scipy za pomocą niektórych przykładów. Badaliśmy, czym są dane przestrzenne Scipy i jak można je wykorzystać w programach Python, aby uzyskać punkty danych w przestrzeni geometrycznej. Te przykłady są bardzo łatwe do zrozumienia i pomogą napisać kody struktury danych dla przestrzeni geometrycznej. Ćwicz te przykłady wielokrotnie, aby opanować strukturę danych przestrzennych i algorytmów.