Programmiersprachen auf hoher Ebene sind hauptsächlich auf Datenstrukturen und objektorientierten Modulen basieren. Die objektorientierte Programmierstruktur erleichtert Entwicklern die optimierten, einfachen und strukturierten Codes erheblich. Räumliche Daten oder Algorithmen sind auch eine Form der Datenstruktur, die die Daten in einem geometrischen Raum darstellt. Räumliche Algorithmen werden sehr häufig zur Berechnung der Triangulationen und konvexen Rümpfe eines Punktsatzes verwendet. Diese Algorithmen werden auch verwendet, um die Entfernung zwischen verschiedenen Matrizen zu berechnen und die Kdtree -Implementierungen für die nächsten Nachbarn -Punktabfragen bereitzustellen. Dieser Leitfaden wurde entwickelt, um die räumlichen Skipy -Algorithmen zu untersuchen, um zu verstehen, wie die Daten im geometrischen Raum verwaltet werden können.
Was sind räumliche Daten?
Thae -Daten, die in einem geometrischen Raum dargestellt werden, wie Punkte auf einem Koordinatensystem, sind allgemein als räumliche Daten bekannt. Viele Aufgaben können beim Umgang mit räumlichen Daten im Koordinatensystem ausgeführt werden. Scipy ist eine der Python -unglaublichen Bibliotheken, die üblicherweise für mathematische und statistische Funktionen verwendet wird und die Scipy bietet.Raumpaket. Es wird häufig für räumliche Daten und Algorithmen verwendet. Wie wir diskutierten, werden die räumlichen Algorithmen zur Durchführung von Triangulation, Kdtree -Implementierung für die nächsten Nachbarn -Punkte, Voronoi -Diagramm usw. verwendet, usw. Lassen Sie uns also jede Berechnung mit Hilfe von Beispielen erklären.
Beispiel 1:
In diesem Beispiel werden wir erklären, wie die Triangulation mit der Scipy durchgeführt wird.Raumpaket. Betrachten Sie dieses Beispiel und erfahren Sie, wie der räumliche Algorithmus die Delaunay -Triangulation berechnet. Siehe den Beispielcode im folgenden Code -Snippet:
Numph als NP importieren
Matplotlib importieren.Pyplot als PLT
von Scipy.räumlicher Import Delaunay
Arrays = np.Array ([[3, 4], [0, 2],
[1, 4], [2, 0],
[3, 2], [4, 3]])
Simpls = Delaunay (Arrays).Einfaches
PLT.TripLOT (Arrays [:, 0], Arrays [:, 1], Simpls)
PLT.Streuung (Arrays [: 0], Arrays [:, 1], Color = 'G')
PLT.zeigen()
Das Programm beginnt mit dem Importieren der Numpy -Bibliothek als NP und Matplotlib.Pyplot -Paket als PLT. Dann die Skipei.Das Raumpaket wird als Delaunay importiert. Nach dem Importieren aller Pakete im Programm wird ein Array in der Variablen „Array“ deklariert und gespeichert. Nach der Definition der Array -Punkte wird die Variable „Arrays“ an die Delaunay -Funktion übergeben, um die Vereinfachungen zu berechnen. Um die Datenpunkte zu zeichnen, werden die Triplot- und Streufunktionen verwendet. Um die geplanten Punkte anzuzeigen, die PLT.Show () Funktion wird verwendet. Lassen Sie uns nun sehen, welche Grafik für die Delaunay -Triangulation von der Scipy erzeugt wird.räumlich.Delaunay -Funktion. Siehe die folgende Ausgabe:
Beispiel 2:
Eine andere Aufgabe, die von der Skipei ausgeführt werden kann. Die räumliche Funktion besteht darin, den konvexen Rumpf der festgelegten Punkte zu finden. Die angegebenen Punkte, die das kleinste Polygon machen, werden als konvexe Rümpfe bezeichnet. Um die konvexen Rümpfe zu machen, liefert Python die konvexhull () -Funktion aus der Skipy.Raumpaket. In diesem Beispiel schreiben wir den Code, der die Funktion ConvexHull () einbezieht, um zu verstehen, wie Sie diese Funktion in Ihrem Programm entsprechend Ihren Anforderungen verwenden können. Betrachten Sie den Beispielcode im folgenden Code -Snippet:
Numph als NP importieren
Matplotlib importieren.Pyplot als PLT
von Scipy.räumliche Import konvexhull
Arrays = np.Array ([[3, 4], [0, 2],
[1, 4], [2, 0],
[3, 2], [4, 3]])
CH = Konvexhull (Arrays)
chp = ch.Einfaches
PLT.Streuung (Arrays [:, 0], Arrays [:, 1])
Für Simplex in CHP:
PLT.Diagramm (Arrays [Simplex, 0], Arrays [simplex, 1], 'k-')
PLT.zeigen()
Zuerst importieren wir die Numpy -Bibliothek als NP in das Programm und Matplotlib.Pyplot -Paket als PLT. Wir konvertieren auch die Skipei.Raumpaket zum Importieren des konvexen Moduls. Die Array -Punkte werden in der Variablen „Arrays“ deklariert und an die konvexhull () -Funktion übergeben. Danach heißt das Simplimes -Modul genannt. Um die Array -Punkte zu zeichnen, wird die Funktion Scatter () aufgerufen. Eine „für“ -Schloop wird verwendet, um jeden Punkt im geometrischen Raum zu zeichnen. Die Aufzeichnungspunkte werden im geometrischen Raum unter Verwendung der Funktion show () angezeigt. Siehe die folgende geplante Grafik:
Beispiel 3:
Die nächste Funktion, die von der Scipy angeboten wird.Raumpaket ist die Kdtree -Implementierung für die nächsten Nachbar Point -Abfragen. Lassen Sie uns nun ein Programm schreiben, das die Kdtree -Methode der Scipy verwendet.Raumpaket, um den nächsten Nachbarn im angegebenen geometrischen Raum zu finden.
von Scipy.räumlicher Import Kdtree
pnts = np.willkürlich.Rand (50,3)
kdt = kdtree (pnts)
res = kdt.Abfrage ((2, 1, 5))
Druck (res)
Erstens nennen wir die Scipy.Raumpaket zum Importieren des Kdtree -Moduls in das Programm. Dann definieren wir die Punkte für den geometrischen Raum. Hier verwenden wir die zufällige Funktion, um die Punkte für den geometrischen Raum zu erhalten und diese Punkte an die Funktion kdtree () zu übergeben, um den nächsten Nachbarn im gegebenen geometrischen Raum zu finden. Lassen Sie uns nun sehen, welches Ergebnis die Kdtree -Funktion erzeugt wird. Siehe das Ergebnis im folgenden Screenshot:
Beispiel 4:
Das nächste Merkmal der Skipie.Raumpaket, das wir erklären werden, sind Coplanar -Punkte. Die koplanaren Punkte sind die Punkte, die in derselben Ebene aufgetragen sind. Sie können mindestens drei oder mehr drei Punkte sein. Lassen Sie uns nun ein Programm schreiben, das die koplanaren Punkte im geometrischen Raum plant.
Numph als NP importieren
von Scipy.räumlicher Import Delaunay
Arrays = np.Array ([[0, 0], [0, 0], [1, 1],
[1, 1], [0, 1], [1, 0],
]))
COP = Delaunay (Arrays)
drucken (cop.Einfaches)
print ('\ n')
drucken (cop.Coplanar)
Auch hier werden die erforderlichen Bibliotheken in das Programm zur Ausführung importiert. Die erste Bibliothek ist Numpy und die zweite Bibliothek ist Scipy. Das Delaunay -Paket wird in das Programm importiert, damit die Coplanar -Funktion verwendet werden kann. Die Datenpunkte werden im Array deklariert, das an die Delaunay -Funktion übergeben wird. Dann wird das koplanare Modul gerufen, um die koplanaren Punkte des geometrischen Raums zu erhalten. Die koplanaren Punkte sind im folgenden Screenshot angegeben. Siehe die Ausgabe im Folgenden:
Beispiel 5:
Die Skipie.Das räumliche Paket wird auch verwendet, um die Entfernungsmetriken in der euklidischen Entfernung, der Datenwissenschaft usw. zu berechnen, usw. Die Entfernungsmatrix bezieht sich nicht nur auf den Abstand zwischen zwei Punkten, sondern auch auf den Winkel oder die Einheitenstufen. Die Leistung verschiedener Algorithmen für maschinelles Lernen wie K-Means, K-nearest Nachbar usw. stark abhängig vom Wert der Distanzmatrizen abhängt. Berechnen wir die Entfernungsmetrik mit der euklidischen Entfernungsfunktion. Betrachten Sie den folgenden Beispielcode:
von Scipy.räumlich.Distanzimport euklidisch
Punkt 1 = (10, 5)
Punkt2 = (2, 6)
matrix = euclidan (Punkt1, Punkt2)
Druck (Matrix)
Das euklidische Modul wird von der Skipie bereitgestellt.räumlich.Entfernungspaket, damit es entsprechend in das Programm importiert wird. Die beiden Punkte zum Auffinden der Distanzmatrizen sind in den Variablen Punkt1 und Punkt2 definiert. Die definierten Punkte werden an die euklidische Funktion übergeben und mit dem Printbefehl angezeigt. Siehe den folgenden Wert für berechnete Distanzmatrix:
Abschluss
In diesem Artikel haben wir die räumlichen scipy räumlichen Daten mit Hilfe einiger Beispiele programmiert. Wir haben untersucht, was die räumlichen Daten von Scipy sind und wie sie in Python -Programmen verwendet werden können, um die Datenpunkte im geometrischen Raum zu erhalten. Diese Beispiele sind sehr leicht zu verstehen und helfen Ihnen beim Schreiben Ihrer Datenstrukturcodes für geometrischen Raum. Üben Sie diese Beispiele wiederholt, um die räumliche Datenstruktur und die Algorithmen zu beherrschen.