Scipy romlige algoritmer

Scipy romlige algoritmer

Programmeringsspråk på høyt nivå er stort sett bygget på datastrukturer og objektorienterte moduler. Objektorientert programmeringsstruktur gjør det mye enklere for utviklere å skrive de optimaliserte, enkle og strukturerte kodene. Romlige data eller algoritmer er også en form for datastruktur som representerer dataene i et geometrisk rom. Romlige algoritmer brukes veldig ofte til å beregne trianguleringene og konvekse skrogene i et punktsett. Disse algoritmene brukes også til å beregne avstanden mellom forskjellige matriser og gi Kdtree -implementeringene for nærmeste nabopunktspørsmål. Denne guiden er designet for å utforske de scipy romlige algoritmene for å forstå hvordan man administrerer dataene i geometrisk rom.

Hva er romlige data?

Thae -data som er representert i et geometrisk rom, som punkter på et koordinatsystem, er ofte kjent som romlige data. Mange oppgaver kan utføres når du arbeider med romlige data i koordinatsystemet. Scipy er et av Python utrolige biblioteker som ofte brukes til matematiske og statistiske funksjoner og tilbyr scipy.Romlig pakke. Det brukes ofte til romlige data og algoritmer. Som vi diskuterte, brukes de romlige algoritmene til å utføre triangulering, Kdtree -implementering for de nærmeste nabo -spørsmålene, Voronoi -diagrammet osv. Så la oss forklare hver beregning ved hjelp av eksempler.

Eksempel 1:

I dette eksemplet vil vi forklare hvordan vi skal utføre trianguleringen med scipy.Romlig pakke. Tenk på dette eksemplet og lær hvordan den romlige algoritmen fungerer for å beregne Delaunay -trianguleringen. Se prøvekoden i følgende kodebit:

Importer numpy som NP
Importer matplotlib.Pyplot som Plt
Fra scipy.Romlig import Delaunay
Arrays = NP.Array ([[3, 4], [0, 2],
[1, 4], [2, 0],
[3, 2], [4, 3]])
Simpls = Delaunay (Arrays).forenklinger
plt.Triplot (Arrays [:, 0], Arrays [:, 1], Simpls)
plt.spredning (matriser [:, 0], arrays [:, 1], farge = 'g')
plt.forestilling()

Programmet starter med å importere Numpy -biblioteket som NP og Matplotlib.Pyplot -pakke som PLT. Deretter Scipy.Romlig pakke importeres som delaunay. Etter å ha importert alle pakkene i programmet, er en matrise erklært og lagret i "matrisen" -variabelen. Etter å ha definert array -punktene, sendes "matriser" -variabelen til Delaunay -funksjonen for å beregne Simplices. For å plotte datapunktene brukes triplot- og spredningsfunksjonene. For å vise de plottede punktene, PLT.Vis () -funksjon brukes. La oss nå se hvilken graf for Delaunay -trianguleringen produseres av Scipy.romlig.Delaunay -funksjon. Se følgende utgang:

Eksempel 2:

En annen oppgave som kan utføres av scipy. Den romlige funksjonen er å finne det konvekse skroget til poengsettet. De gitte punktene som gjør den minste polygonen er kjent som konvekse skrog. For å lage de konvekse skrogene gir Python Convexhull () -funksjonen fra scipy.Romlig pakke. I dette eksemplet vil vi skrive koden som inkluderer Convexhull () -funksjonen for å hjelpe deg med å forstå hvordan du kan bruke denne funksjonen i programmet ditt i henhold til dine behov. Vurder prøvekoden i følgende kodebit:

Importer numpy som NP
Importer matplotlib.Pyplot som Plt
Fra scipy.Romlig import Convexhull
Arrays = NP.Array ([[3, 4], [0, 2],
[1, 4], [2, 0],
[3, 2], [4, 3]])
CH = Convexhull (Arrays)
CHP = Ch.forenklinger
plt.Spredning (Arrays [:, 0], Arrays [:, 1])
for simplex i CHP:
plt.Plot (Arrays [simplex, 0], Arrays [simplex, 1], 'k-')
plt.forestilling()

Først importerer vi Numpy Library som NP til programmet og matplotlib.Pyplot -pakke som PLT. Vi konverterer også scipy.Romlig pakke for å importere Convexhull -modulen. Array -poengene er erklært i "Arrays" -variabelen og føres til Convexhull () -funksjonen. Etter det kalles Simplices -modulen. For å plotte matrisepunktene, kalles spredning () -funksjonen. En "for" -sløyfe brukes til å plotte hvert punkt i det geometriske rommet. Plottingspunktene vises i det geometriske rommet ved hjelp av show () -funksjonen. Se følgende plottede graf:

Eksempel 3:

Neste funksjon som tilbys av scipy.Romlig pakke er Kdtree -implementeringen for nærmeste nabo -spørsmål. La oss nå skrive et program som bruker Kdtree -metoden til Scipy.Romlig pakke for å finne den nærmeste naboen i det gitte geometriske rommet.

Fra scipy.Romlig import kdtree
PNTS = NP.tilfeldig.Rand (50,3)
kdt = kdtree (PNTS)
res = kdt.spørring ((2, 1, 5))
trykk (res)

Først kaller vi scipy.Romlig pakke for å importere kdtree -modulen til programmet. Deretter definerer vi punktene for det geometriske rommet. Her bruker vi den tilfeldige funksjonen for å få poengene for det geometriske rommet og gi disse punktene til Kdtree () -funksjonen for å finne den nærmeste naboen i det gitte geometriske rommet. La oss nå se hvilket resultat som produseres av Kdtree -funksjonen. Se resultatet i følgende skjermbilde:

Eksempel 4:

Neste funksjon i Scipy.Romlig pakke som vi skal forklare er Coplanar Points. De koplanære punktene er punktene som er plottet i samme plan. De kan være minst tre eller flere tre poeng. La oss nå skrive et program som plotter de koplanære punktene i geometrisk rom.

Importer numpy som NP
Fra scipy.Romlig import Delaunay
Arrays = NP.Array ([[0, 0], [0, 0], [1, 1],
[1, 1], [0, 1], [1, 0],
])
COP = Delaunay (Arrays)
trykk (politimann.forenklinger)
print ('\ n')
trykk (politimann.koplanar)

Igjen importeres de nødvendige bibliotekene til programmet for utførelse. Det første biblioteket er numpy og det andre biblioteket er scipy. Delaunay -pakken importeres til programmet slik at Coplanar -funksjonen kan brukes. Datapunktene er deklarert i matrisen som sendes til Delaunay -funksjonen. Deretter kalles den koplanære modulen for å få de koplanære punktene i det geometriske rommet. Coplanar -punktene er gitt i følgende skjermbilde. Se utgangen i det følgende:

Eksempel 5:

Scipy.Romlig pakke brukes også til å beregne avstandsmålingene i euklidisk avstand, datavitenskap osv. Avstandsmatrisen refererer til ikke bare avstanden mellom to punkter, men den refererer også til vinkelen eller enhetstrinnene. Ytelsen til forskjellige maskinlæringsalgoritmer som K-Means, K-Narest nabo osv. avhenger sterkt av avstandsmatriser verdien. La oss beregne avstandsmetrikken med den euklidiske avstandsfunksjonen. Tenk på følgende prøvekode:

Fra scipy.romlig.avstand import euklidisk
punkt1 = (10, 5)
punkt2 = (2, 6)
Matrix = Euclidean (punkt1, punkt2)
Print (Matrix)

Den euklidiske modulen er levert av Scipy.romlig.avstandspakke slik at den importeres til programmet deretter. De to punktene for å finne avstandsmatriser er definert i punkt1- og punkt2 -variablene. De definerte punktene sendes til den euklidiske funksjonen og vises med utskriftskommandoen. Se følgende beregnet avstandsmatriseverdi:

Konklusjon

I denne artikkelen programmerte vi de scipy romlige dataene ved hjelp av noen eksempler. Vi undersøkte hva Scipy romlige data er og hvordan de kan brukes i Python -programmer for å få datapunktene i det geometriske rommet. Disse eksemplene er veldig enkle å forstå og vil hjelpe deg med å skrive datastrukturkoder for geometrisk rom. Øv disse eksemplene gjentatte ganger for å mestre den romlige datastrukturen og algoritmene.