Python Numpy Tutorial

Python Numpy Tutorial
I denne leksjonen om Python Numpy-biblioteket, vil vi se på hvordan dette biblioteket lar oss administrere kraftige N-dimensjonale array-objekter med sofistikerte funksjoner som er til stede for å manipulere og operere over disse matriser. For å gjøre denne leksjonen komplett, vil vi dekke følgende seksjoner:
  • Hva er Python Numpy -pakken?
  • Numpy matriser
  • Forskjellige operasjoner som kan gjøres over numpy matriser
  • Noen flere spesielle funksjoner

Hva er Python Numpy -pakken?

Enkelt sagt står Numpy for 'numerisk python', og det er det den tar sikte på å oppfylle, for å tillate komplekse numeriske operasjoner utført på N-dimensjonale matriseobjekter veldig enkelt og på en intuitiv måte. Det er kjernebiblioteket som brukes i Vitenskapelig databehandling, med funksjoner til stede for å utføre lineære algebraiske operasjoner og statistiske operasjoner.

Et av de mest grunnleggende (og attraktive) konseptene for Numpy er bruken av n-dimensjonale array-objekter. Vi kan ta denne matrisen som bare en Samling av rader og kolonne, Akkurat som en MS-Excel-fil. Det er mulig å konvertere en Python -liste til en numpy matrise og betjene funksjoner over den.

Numpy Array -representasjon

Bare et notat før vi starter, bruker vi et virtuelt miljø for denne leksjonen som vi laget med følgende kommando:

python -m virtualenv numpy
Kilde numpy/bin/aktiverer

Når det virtuelle miljøet er aktivt, kan vi installere Numpy -biblioteket i det virtuelle Env, slik at eksempler vi oppretter neste kan utføres:

Pip installer numpy

Vi ser noe slikt når vi utfører kommandoen ovenfor:

La oss raskt teste om Numpy -pakken er installert riktig med følgende kortkodeutdrag:

Importer numpy som NP
a = np.Array ([1,2,3])
trykk (a)

Når du har kjørt ovennevnte program, bør du se følgende utdata:

Vi kan også ha flerdimensjonale matriser med Numpy:

multi_dimensjon = np.Array ([(1, 2, 3), (4, 5, 6)])
Print (Multi_Dimension)

Dette vil gi en utgang som:

[[1 2 3]
[4 5 6]]

Du kan også bruke Anaconda til å kjøre disse eksemplene som er enklere, og det er det vi har brukt ovenfor. Hvis du vil installere den på maskinen din, kan du se på leksjonen som beskriver “Hvordan installere Anaconda Python på Ubuntu 18.04 LTS ”og del tilbakemeldingene dine. La oss nå gå videre til forskjellige typer operasjoner som kan utføres med Python Numpy -matriser.

Bruke numpy matriser over Python -lister

Det er viktig å spørre at når Python allerede har en sofistikert datastruktur for å holde flere elementer enn hvorfor trenger vi numpy matriser i det hele tatt? Numpy -matriser er Foretrukket fremfor Python -lister På grunn av følgende årsaker:

  • Praktisk å bruke til matematisk og beregne intensive operasjoner på grunn av tilstedeværelse av kompatible numpy -funksjoner
  • De er mye raskt raskere på grunn av måten de lagrer data internt
  • Mindre minne

La oss Bevis at numpy matriser opptar mindre minne. Dette kan gjøres ved å skrive et veldig enkelt Python -program:

Importer numpy som NP
Importer tid
Importer Sys
python_list = rekkevidde (500)
Trykk (Sys.GetSizeOf (1) * Len (Python_List))
numpy_arr = np.Arange (500)
trykk (numpy_arr.størrelse * numpy_arr.ItemeSize)

Når vi kjører ovennevnte program, får vi følgende utdata:

14000
4000

Dette viser at listen over samme størrelse er mer enn 3 ganger i størrelse sammenlignet med samme størrelse numpy matrise.

Utføre numpy operasjoner

I denne delen, la oss raskt se over operasjonene som kan utføres på numpy matriser.

Finne dimensjoner i Array

Siden Numpy -matrisen kan brukes i et hvilket som helst dimensjonalt rom for å holde data, kan vi finne dimensjonen til en matrise med følgende kodebit:

Importer numpy som NP
numpy_arr = np.Array ([(1,2,3), (4,5,6)])
trykk (numpy_arr.ndim)

Vi vil se utdataene som "2", da dette er en 2-dimensjonal matrise.

Finne datatype av elementer i Array

Vi kan bruke Numpy Array for å holde hvilken som helst datatype. La oss nå finne ut datatypen til dataene en matrise inneholder:

andre_arr = np.Array ([('Awe', 'B', 'Cat')))
trykk (andre_arr.dtype)
numpy_arr = np.Array ([(1,2,3), (4,5,6)])
trykk (numpy_arr.dtype)

Vi brukte forskjellige typer elementer i ovennevnte kodebit. Her er utgangen dette skriptet vil vise:

INT64

Dette skjer da karakterer tolkes som Unicode -tegn og den andre er åpenbare.

Omforme gjenstander av en matrise

Hvis en numpy matrise består av 2 rader og 4 kolonner, kan den omformes for å inneholde 4 rader og 2 kolonner. La oss skrive et enkelt kodebit for det samme:

Original = NP.Array ([('1', 'B', 'C', '4'), ('5', 'F', 'G', '8')])
trykk (original)
omformet = original.omforme (4, 2)
trykk (omformet)

Når vi har kjørt ovennevnte kodebit, får vi følgende utdata med begge matriser skrevet ut på skjermen:

[['1' 'B' 'C' '4']
['5' 'f' 'g' '8']]
[['1' 'B']
['C' '4']
['5' 'f']
['G' '8']]

Legg merke til hvordan Numpy tok seg av å skifte og knytte elementene til nye rader.

Matematiske operasjoner på varer av en matrise

Å utføre matematiske operasjoner på varer av en matrise er veldig enkelt. Vi starter med å skrive et enkelt kodebit for å finne ut maksimum, minimum og tillegg av alle elementene i matrisen. Her er kodebiten:

numpy_arr = np.Array ([(1, 2, 3, 4, 5)])
trykk (numpy_arr.maks ())
trykk (numpy_arr.min ())
trykk (numpy_arr.sum())
trykk (numpy_arr.mener())
trykk (NP.sqrt (numpy_arr))
trykk (NP.STD (numpy_arr))

I de to siste operasjonene ovenfor, beregnet vi også kvadratroten og standardavviket for hver matriseelementer. Ovennevnte utdrag vil gi følgende utdata:

5
1
15
3.0
[[1. 1.41421356 1.73205081 2. 2.23606798]]]
1.4142135623730951

Konvertere Python -lister til numpy matriser

Selv om du har brukt Python -lister i de eksisterende programmene dine og ikke vil endre all den koden, men likevel ønsker å benytte deg av numpy matriser i den nye koden din, er det godt å vite at vi enkelt kan konvertere en Python Liste til en numpy matrise. Her er et eksempel:

# Opprett 2 nye lister høyde og vekt
høyde = [2.37, 2.87, 1.52, 1.51, 1.70, 2.05]
vekt = [91.65, 97.52, 68.25, 88.98, 86.18, 88.45]
# Lag 2 numpy matriser fra høyde og vekt
np_height = np.Array (høyde)
np_weight = np.Array (vekt)

Bare for å sjekke, kan vi nå skrive ut typen av en av variablene:

print (type (np_height))

Og dette vil vise:

Vi kan nå utføre en matematisk operasjon over alle varene samtidig. La oss se hvordan vi kan beregne BMI for folket:

# Beregn BMI
BMI = np_weight / np_height ** 2
# Skriv ut resultatet
Print (BMI)

Dette vil vise BMI for alle menneskene beregnet elementsmessig:

[16.31682957 11.8394056 29.54033934 39.02460418 29.8200692 21.04699584]

Er ikke så lett og praktisk? Vi kan til og med filtrere data enkelt med en tilstand i stedet for en indeks inne i firkantede parenteser:

BMI [BMI> 25]

Dette vil gi:

Array ([29.54033934, 39.02460418, 29.8200692])

Lag tilfeldige sekvenser og repetisjoner med numpy

Med mange funksjoner som er til stede i Numpy for å lage tilfeldige data og ordne dem i en nødvendig form, brukes numpy matriser mange ganger i å generere testdatasett mange steder, inkludert feilsøking og testformål. Hvis du for eksempel vil opprette en matrise fra 0 til N, kan vi bruke Arange (merk singelen 'R') som det gitte utdraget:

trykk (NP.Arange (5))

Dette vil returnere utdataene som:

[0 1 2 3 4]

Den samme funksjonen kan brukes til å gi en lavere verdi slik at matrisen starter fra andre tall enn 0:

trykk (NP.Arange (4, 12)))

Dette vil returnere utdataene som:

[4 5 6 7 8 9 10 11]

Tallene trenger ikke være kontinuerlige, de kan hoppe over et fiksetrinn som:

trykk (NP.Arange (4, 14, 2))

Dette vil returnere utdataene som:

[4 6 8 10 12]

Vi kan også få tallene i en synkende rekkefølge med en negativ hoppverdi:

trykk (NP.Arange (14, 4, -1))

Dette vil returnere utdataene som:

[14 13 12 11 10 9 8 7 6 5]

Det er mulig å finansiere N -tall mellom X og Y med lik plass med Linspace -metoden, her er kodebiten for det samme:

np.Linspace (start = 10, stopp = 70, num = 10, dtype = int)

Dette vil returnere utdataene som:

Array ([10, 16, 23, 30, 36, 43, 50, 56, 63, 70])

Vær oppmerksom på at utgangselementene ikke er like fordelt. Numpy gjør sitt beste for å gjøre det, men du trenger ikke stole på det, da det gjør avrundingen.

Til slutt, la oss se på hvordan vi kan generere et sett med tilfeldig sekvens med Numpy, som er en av de mest brukte funksjonene for testformål. Vi vil gi en rekke tall til Numpy som vil bli brukt som et innledende og siste punkt for tilfeldige tall:

trykk (NP.tilfeldig.Randint (0, 10, størrelse = [2,2]))

Ovennevnte utdrag skaper en 2 -dimensjonal numpy matrise som vil inneholde tilfeldige tall mellom 0 og 10. Her er prøveutgangen:

[[0 4]
[8 3]]

Vær oppmerksom på at tallene er tilfeldige, kan utgangen avvike selv mellom de to kjørene på samme maskin.

Konklusjon

I denne leksjonen så vi på forskjellige aspekter ved dette databehandlingsbiblioteket som vi kan bruke med Python for å beregne enkle så vel som komplekse matematiske problemer som kan oppstå i forskjellige bruk-tilfeller Numpy er et av de viktigste beregningsbibliotekene når det gjelder Datateknikk og beregning av numerisk dat, definitivt en ferdighet vi trenger å ha under beltet.

Del tilbakemeldingene dine på leksjonen på Twitter med @SBMaggarwal og @linuxhint.