Datalogi

Python NumPy-vejledning

Python NumPy-vejledning
I denne lektion om Python NumPy-biblioteket vil vi se på, hvordan dette bibliotek giver os mulighed for at styre kraftfulde N-dimensionelle matrixobjekter med sofistikerede funktioner til stede for at manipulere og operere over disse arrays. For at gøre denne lektion færdig vil vi dække følgende afsnit:

Hvad er Python NumPy-pakke?

Enkelt sagt står NumPy for 'Numerisk Python', og det er det, den har til formål at opfylde, for at tillade komplekse numeriske operationer udført på N-dimensionelle matrixobjekter meget let og på en intuitiv måde. Det er det centrale bibliotek, der bruges i videnskabelig databehandling, med funktioner til stede for at udføre lineære algebraiske operationer og statistiske operationer.

Et af de mest grundlæggende (og attraktive) koncepter for NumPy er brugen af ​​N-dimensionelle array-objekter. Vi kan tage dette array som bare en samling af rækker og kolonne, ligesom en MS-Excel-fil. Det er muligt at konvertere en Python-liste til et NumPy-array og betjene funktioner over det.

NumPy Array-repræsentation

Bare en note, før vi starter, bruger vi et virtuelt miljø til denne lektion, som vi lavede med følgende kommando:

python -m virtualenv bedøvet
kilde numpy / bin / aktiver

Når det virtuelle miljø er aktivt, kan vi installere numpy-biblioteket i den virtuelle env, så eksempler, vi opretter næste, kan udføres:

pip install numpy

Vi ser noget som dette, når vi udfører ovenstående kommando:

Lad os hurtigt teste, om NumPy-pakken er installeret korrekt med følgende korte kodestykke:

importer numpy som np
a = np.matrix ([1,2,3])
print (a)

Når du har kørt ovenstående program, skal du se følgende output:

Vi kan også have flerdimensionelle arrays med NumPy:

multi_dimension = np.array ([(1, 2, 3), (4, 5, 6)])
udskrive (multidimension)

Dette vil producere en output som:

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

Du kan også bruge Anaconda til at køre disse eksempler, hvilket er lettere, og det er det, vi har brugt ovenfor. Hvis du vil installere det på din maskine, skal du se på lektionen, der beskriver “Sådan installeres Anaconda Python på Ubuntu 18.04 LTS ”og del din feedback. Lad os nu gå videre til forskellige typer operationer, der kan udføres med Python NumPy-arrays.

Brug af NumPy-arrays over Python-lister

Det er vigtigt at spørge, at når Python allerede har en sofistikeret datastruktur til at indeholde flere elementer, end hvorfor har vi overhovedet brug for NumPy-arrays? NumPy-arrays er foretrukket frem for Python-lister af følgende årsager:

Lad os bevis for, at NumPy-arrays optager mindre hukommelse. Dette kan gøres ved at skrive et meget simpelt Python-program:

importer numpy som np
importtid
importer sys
python_list = rækkevidde (500)
udskrive (sys.getsizeof (1) * len (python_list))
numpy_arr = np.arange (500)
udskriv (numpy_arr.størrelse * numpy_arr.elementstørrelse)

Når vi kører ovenstående program, får vi følgende output:

14000
4000

Dette viser, at den samme størrelsesliste er mere end 3 gange i størrelse sammenlignet med samme størrelse NumPy-array.

Udførelse af NumPy-operationer

I dette afsnit skal vi hurtigt se på de operationer, der kan udføres på NumPy-arrays.

Find dimensioner i matrix

Da NumPy-arrayet kan bruges i ethvert dimensionelt rum til at indeholde data, kan vi finde dimensionen af ​​en array med følgende kodestykke:

importer numpy som np
numpy_arr = np.matrix ([(1,2,3), (4,5,6)])
udskriv (numpy_arr.ndim)

Vi vil se output som “2”, da dette er et 2-dimensionelt array.

Find datatype af emner i array

Vi kan bruge NumPy-array til at indeholde enhver datatype. Lad os nu finde ud af datatypen for de data, som en matrix indeholder:

anden_arr = np.array ([('ærefrygt', 'b', 'cat')])
udskriv (andet_arr.dtype)
numpy_arr = np.matrix ([(1,2,3), (4,5,6)])
udskriv (numpy_arr.dtype)

Vi brugte forskellige typer elementer i ovenstående kodestykke. Her er det output, som dette script viser:

int64

Dette sker, når tegn fortolkes som unicode-tegn, og det andet er tydeligt.

Omform elementer i en matrix

Hvis et NumPy-array består af 2 rækker og 4 kolonner, kan det omformes til at indeholde 4 rækker og 2 kolonner. Lad os skrive et simpelt kodestykke til det samme:

original = np.array ([('1', 'b', 'c', '4'), ('5', 'f', 'g', '8')])
print (original)
omformet = original.omforme (4, 2)
print (omformet)

Når vi har kørt ovenstående kodestykke, får vi følgende output med begge arrays udskrevet på skærmen:

[['1' 'b' 'c' '4']
['5' 'f' 'g' '8']]
[['1' 'b']
['c' '4']
['5' 'f']
['g' '8']]

Bemærk, hvordan NumPy tog sig af at skifte og knytte elementerne til nye rækker.

Matematiske operationer på emner i en matrix

At udføre matematiske operationer på emner i en matrix er meget enkel. Vi starter med at skrive et simpelt kodestykke for at finde ud af maksimum, minimum og tilføjelse af alle elementerne i arrayet. Her er kodestykket:

numpy_arr = np.array ([(1, 2, 3, 4, 5)])
udskriv (numpy_arr.maks ())
udskriv (numpy_arr.min ())
udskriv (numpy_arr.sum())
udskriv (numpy_arr.betyde())
udskrive (np.sqrt (numpy_arr))
udskrive (np.std (numpy_arr))

I de sidste 2 operationer ovenfor beregnede vi også kvadratroden og standardafvigelsen for hver matrixelementer. Ovenstående uddrag giver følgende output:

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

Konvertering af Python-lister til NumPy-arrays

Selvom du har brugt Python-lister i dine eksisterende programmer, og du ikke vil ændre al den kode, men stadig vil bruge NumPy-arrays i din nye kode, er det godt at vide, at vi let kan konvertere en Python liste til et NumPy-array. Her er et eksempel:

# Opret 2 nye lister højde og vægt
højde = [2.37, 2.87, 1.52, 1.51, 1.70, 2.05]
vægt = [91.65, 97.52, 68.25, 88.98, 86.18, 88.45]
# Opret 2 følelsesløse arrays fra højde og vægt
np_height = np.array (højde)
np_vægt = np.array (vægt)

Bare for at kontrollere kan vi nu udskrive typen af ​​en af ​​variablerne:

udskriv (type (np_højde))

Og dette vil vise:

Vi kan nu udføre en matematisk operation over alle elementerne på én gang. Lad os se, hvordan vi kan beregne BMI for folket:

# Beregn bmi
bmi = np_vægt / np_højde ** 2
# Udskriv resultatet
print (bmi)

Dette viser BMI for alle mennesker beregnet elementmæssigt:

[16.31682957 11.8394056 29.54033934 39.02460418 29.8200692 21.04699584]

Er det ikke så let og praktisk? Vi kan endda nemt filtrere data med en betingelse i stedet for et indeks inden for firkantede parenteser:

bmi [bmi> 25]

Dette vil give:

array ([29.54033934, 39.02460418, 29.8200692])

Opret tilfældige sekvenser og gentagelser med NumPy

Med mange funktioner til stede i NumPy for at oprette tilfældige data og arrangere dem i en krævet form, bruges NumPy-arrays mange gange til at generere testdatasæt mange steder, herunder fejlfindings- og testformål. For eksempel, hvis du vil oprette en matrix fra 0 til n, kan vi bruge arange (bemærk singlen 'r') som det givne uddrag:

udskrive (np.sort (5)

Dette returnerer output som:

[0 1 2 3 4]

Den samme funktion kan bruges til at give en lavere værdi, så arrayet starter fra andre tal end 0:

udskrive (np.arange (4, 12))

Dette returnerer output som:

[4 5 6 7 8 9 10 11]

Tallene behøver ikke at være sammenhængende, de kan springe et fix-trin over som:

udskrive (np.arange (4, 14, 2))

Dette returnerer output som:

[4 6 8 10 12]

Vi kan også få tallene i faldende rækkefølge med en negativ springværdi:

udskrive (np.arange (14, 4, -1))

Dette returnerer output som:

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

Det er muligt at finansiere n-tal mellem x og y med lige mellemrum med linspace-metoden, her er kodestykket for det samme:

np.linspace (start = 10, stop = 70, num = 10, dtype = int)

Dette returnerer output som:

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

Bemærk, at outputelementerne ikke er lige adskilt. NumPy gør sit bedste for at gøre det, men du behøver ikke stole på det, da det gør afrundingen.

Lad os endelig se på, hvordan vi kan generere et sæt tilfældig sekvens med NumPy, som er en af ​​de mest anvendte funktioner til testformål. Vi videregiver en række numre til NumPy, som vil blive brugt som et indledende og sidste punkt for tilfældige tal:

udskrive (np.tilfældig.randint (0, 10, størrelse = [2,2]))

Ovenstående uddrag opretter et 2 ved 2-dimensionelt NumPy-array, som indeholder tilfældige tal mellem 0 og 10. Her er prøveoutputtet:

[[0 4]
[8 3]]

Bemærk, da tallene er tilfældige, kan output variere selv mellem de to kørsler på den samme maskine.

Konklusion

I denne lektion kiggede vi på forskellige aspekter af dette databibliotek, som vi kan bruge med Python til at beregne enkle såvel som komplekse matematiske problemer, der kan opstå i forskellige brugssager. NumPy er et af de vigtigste beregningsbiblioteker, når det kommer til datateknik og beregning af numerisk dat, bestemt en færdighed, vi skal have under vores bælte.

Del din feedback på lektionen på Twitter med @sbmaggarwal og @LinuxHint.

Sådan bruges AutoKey til at automatisere Linux-spil
AutoKey er et desktopautomatiseringsværktøj til Linux og X11, programmeret i Python 3, GTK og Qt. Ved hjælp af dets scripting og MACRO-funktionalitet ...
Sådan vises FPS-tæller i Linux-spil
Linux-spil fik et stort skub, da Valve annoncerede Linux-support til Steam-klient og deres spil i 2012. Siden da har mange AAA- og indiespil fundet ve...
Sådan downloades og afspilles Sid Meiers Civilization VI på Linux
Introduktion til spillet Civilization 6 er et moderne udtryk for det klassiske koncept, der blev introduceret i serien af ​​Age of Empires-spil. Ideen...