Algoritmi spaziali Scipy

Algoritmi spaziali Scipy

I linguaggi di programmazione di alto livello sono basati principalmente su strutture di dati e moduli orientati agli oggetti. La struttura di programmazione orientata agli oggetti rende molto più facile per gli sviluppatori scrivere i codici ottimizzati, semplici e strutturati. I dati spaziali o gli algoritmi sono anche una forma di struttura dei dati che rappresenta i dati in uno spazio geometrico. Gli algoritmi spaziali sono molto comunemente usati per calcolare le triangolazioni e gli scafi convessi di un set di punti. Questi algoritmi vengono anche utilizzati per calcolare la distanza tra le varie matrici e fornire le implementazioni KDTREE per le query di punti vicini più vicini. Questa guida è progettata per esplorare gli algoritmi spaziali Scipy per capire come gestire i dati nello spazio geometrico.

Cosa sono i dati spaziali?

I dati dei Thae che sono rappresentati in uno spazio geometrico, come punti su un sistema di coordinate, sono comunemente noti come dati spaziali. Molte attività possono essere eseguite quando si tratta di dati spaziali nel sistema di coordinate. Scipy è una delle biblioteche incredibili di Python che viene comunemente utilizzata per le funzioni matematiche e statistiche e offre lo Scipy.pacchetto spaziale. È spesso utilizzato per dati spaziali e algoritmi. Come abbiamo discusso, gli algoritmi spaziali vengono utilizzati per eseguire la triangolazione, l'implementazione di Kdtree per le query di punto vicino più vicino, il diagramma Voronoi, ecc. Quindi, spieghiamo ogni calcolo con l'aiuto di esempi.

Esempio 1:

In questo esempio, spiegheremo come eseguire la triangolazione con il Scipy.pacchetto spaziale. Considera questo esempio e scopri come funziona l'algoritmo spaziale per calcolare la triangolazione Delaunay. Vedere il codice di esempio nel seguente frammento di codice:

Importa Numpy come NP
Importa matplotlib.Pyplot come Plt
da Scipy.Importazione spaziale Delaunay
array = np.Array ([[3, 4], [0, 2],
[1, 4], [2, 0],
[3, 2], [4, 3]])
Simpls = delaUnay (array).semplici
Plt.triplot (array [:, 0], array [:, 1], semplici)
Plt.Scatter (array [:, 0], array [:, 1], color = 'g')
Plt.spettacolo()

Il programma inizia con l'importazione della libreria Numpy come NP e Matplotlib.Pacchetto Pyplot come PLT. Quindi, il Scipy.Il pacchetto spaziale viene importato come delaunay. Dopo aver importato tutti i pacchetti nel programma, un array viene dichiarato e archiviato nella variabile "array". Dopo aver definito i punti dell'array, la variabile "array" viene passata alla funzione delaunay per calcolare i semplici. Per tracciare i punti dati, vengono utilizzate le funzioni di triplot e dispersione. Per visualizzare i punti tracciati, il PLT.viene utilizzata la funzione show (). Ora, vediamo quale grafico per la triangolazione Delaunay è prodotto dal Scipy.spaziale.Funzione delaunay. Vedi il seguente output:

Esempio 2:

Un altro compito che può essere eseguito dal Scipy. La funzione spaziale è trovare lo scafo convesso dei punti impostati. I punti indicati che rendono il poligono più piccolo sono noti come scafi convessi. Per fare gli scafi convessi, Python fornisce la funzione ConvexHull () dal Scipy.pacchetto spaziale. In questo esempio, scriveremo il codice che incorpora la funzione ConvexHull () per aiutarti a capire come puoi utilizzare questa funzione nel tuo programma in base alle tue esigenze. Considera il codice di esempio nel seguente frammento di codice:

Importa Numpy come NP
Importa matplotlib.Pyplot come Plt
da Scipy.Importazione spaziale Convexhull
array = np.Array ([[3, 4], [0, 2],
[1, 4], [2, 0],
[3, 2], [4, 3]])
Ch = Convexhull (array)
CHP = CH.semplici
Plt.Scatter (Arrays [:, 0], Arrays [:, 1])
Per simplex in CHP:
Plt.trama (array [simplex, 0], array [simplex, 1], 'k-')
Plt.spettacolo()

Innanzitutto, importa la libreria Numpy come NP nel programma e Matplotlib.Pacchetto Pyplot come PLT. Convertiamo anche lo Scipy.Pacchetto spaziale per importare il modulo convexhull. I punti dell'array sono dichiarati nella variabile "array" e passati alla funzione convexhull (). Successivamente, il modulo Simplices viene chiamato. Per tracciare i punti dell'array, la funzione Scatter () è chiamata. Un ciclo "per" viene utilizzato per tracciare ogni punto nello spazio geometrico. I punti di tracciamento sono mostrati nello spazio geometrico usando la funzione show (). Vedi il seguente grafico tracciato:

Esempio 3:

La prossima funzione offerta dal Scipy.Il pacchetto spaziale è l'implementazione di Kdtree per le query del punto vicino più vicino. Ora, scriviamo un programma che utilizza il metodo Kdtree di Scipy.Pacchetto spaziale per trovare il vicino più vicino nello spazio geometrico dato.

da Scipy.Importazione spaziale Kdtree
pnts = np.casuale.Rand (50,3)
kdt = kdtree (pnts)
Res = Kdt.query ((2, 1, 5))
Stampa (Res)

Innanzitutto, chiamiamo The Scipy.Pacchetto spaziale per importare il modulo KDtree nel programma. Quindi, definiamo i punti per lo spazio geometrico. Qui, utilizziamo la funzione casuale per ottenere i punti per lo spazio geometrico e passiamo questi punti alla funzione Kdtree () per trovare il vicino più vicino nello spazio geometrico dato. Ora, vediamo quale risultato è prodotto dalla funzione Kdtree. Vedi il risultato nella seguente screenshot:

Esempio 4:

La prossima caratteristica di The Scipy.Il pacchetto spaziale che spiegheremo sono i punti Coplanar. I punti coplanari sono i punti che sono tracciati sullo stesso piano. Possono essere almeno tre o più tre punti. Ora, scriviamo un programma che traccia i punti Coplanar nello spazio geometrico.

Importa Numpy come NP
da Scipy.Importazione spaziale Delaunay
array = np.Array ([[0, 0], [0, 0], [1, 1],
[1, 1], [0, 1], [1, 0],
])
COP = delaunay (array)
Stampa (poliziotto.semplici)
print ('\ n')
Stampa (poliziotto.Complanare)

Ancora una volta, le librerie richieste vengono importate nel programma per l'esecuzione. La prima biblioteca è numpy e la seconda biblioteca è Scipy. Il pacchetto Delaunay viene importato nel programma in modo da poter utilizzare la funzione Coplanar. I punti dati sono dichiarati nell'array che viene passato alla funzione Delaunay. Quindi, il modulo Coplanar viene chiamato per ottenere i punti coplanari dello spazio geometrico. I punti coplanari sono riportati nella seguente screenshot. Vedere l'output di quanto segue:

Esempio 5:

Il Scipy.Il pacchetto spaziale viene anche utilizzato per calcolare le metriche di distanza nella distanza euclidea, nella scienza dei dati, ecc. La matrice di distanza si riferisce non solo alla distanza tra due punti, ma si riferisce anche all'angolo o alle fasi dell'unità. Le prestazioni di vari algoritmi di apprendimento automatico come K-Means, K-più vicino, ecc. Dipende fortemente dal valore delle matrici di distanza. Calcoliamo la metrica della distanza con la funzione di distanza euclidea. Considera il seguente codice di esempio:

da Scipy.spaziale.Importazione a distanza Euclideo
punto 1 = (10, 5)
punto2 = (2, 6)
Matrix = Euclidean (Point1, Point2)
Stampa (Matrix)

Il modulo euclideo è fornito dal Scipy.spaziale.pacchetto a distanza quindi viene importato nel programma di conseguenza. I due punti per trovare le matrici di distanza sono definiti nelle variabili Point1 e Point2. I punti definiti vengono passati alla funzione euclidea e visualizzati con il comando di stampa. Vedere il seguente valore della matrice di distanza calcolata:

Conclusione

In questo articolo, abbiamo programmato i dati spaziali Scipy con l'assistenza di alcuni esempi. Abbiamo esplorato quali sono i dati spaziali di Scipy e come possono essere utilizzati nei programmi Python per ottenere i punti dati nello spazio geometrico. Questi esempi sono molto facili da capire e ti aiuteranno a scrivere i codici della struttura dei dati per lo spazio geometrico. Pratica questi esempi ripetutamente per padroneggiare la struttura dei dati spaziali e gli algoritmi.