Andmeteadus

Pythoni NumPy õpetus

Pythoni NumPy õpetus
Selles Pythoni NumPy teegi õppetükis vaatleme, kuidas see teek võimaldab meil hallata keerukate funktsioonidega võimsaid N-mõõtmelisi massiiviobjekte, et neid massiive manipuleerida ja kasutada. Selle õppetunni lõpetamiseks käsitleme järgmisi jaotisi:

Mis on Python NumPy pakett?

Lihtsamalt öeldes, NumPy tähistab "Numerical Python" ja seda ta ka soovib täita, võimaldades N-mõõtmeliste massiiviobjektidega keerukaid arvulisi toiminguid teha väga lihtsalt ja intuitiivselt. See on põhiraamatukogu, mida kasutatakse aastal teaduslik arvutus, funktsioonidega lineaarsete algebraliste toimingute ja statistiliste toimingute tegemiseks.

NumPy jaoks on üks fundamentaalsemaid (ja atraktiivsemaid) mõisteid N-mõõtmeliste massiiviobjektide kasutamine. Me võime seda massiivi võtta lihtsalt a-na ridade ja veeru kogumine, täpselt nagu MS-Exceli fail. Pythoni loendi on võimalik teisendada NumPy massiiviks ja selle üle funktsioone juhtida.

NumPy massiivi esitus

Enne alustamist kasutame vaid märkust. Selle õppetunni jaoks kasutasime virtuaalset keskkonda, mille tegime järgmise käsuga:

python -m virtualenv numpy
allikas numpy / bin / aktiveeri

Kui virtuaalne keskkond on aktiivne, saame installida numpy teegi virtuaalsesse keskkonda, et saaksime järgmiselt loodud näited täita:

pip install numpy

Ülaloleva käsu täitmisel näeme midagi sellist:

Kontrollime kiiresti, kas NumPy pakett on õigesti installitud järgmise lühikese koodilõiguga:

impordi numpy kui np
a = np.massiiv ([1,2,3])
trükk (a)

Kui olete ülaltoodud programmi käivitanud, peaksite nägema järgmist väljundit:

Meil võib olla NumPy abil ka mitmemõõtmelisi massiive:

mitmemõõtmeline = np.massiiv ([(1, 2, 3), (4, 5, 6)])
print (multi_dimension)

See annab järgmise väljundi:

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

Nende näidete käitamiseks võite kasutada ka Anaconda, mis on lihtsam ja seda oleme ka eespool kasutanud. Kui soovite selle oma arvutisse installida, vaadake õppetundi, mis kirjeldab artiklit „Kuidas Anaconda Pythoni installida Ubuntu 18.04 LTS ”ja jagage tagasisidet. Nüüd liigume edasi erinevat tüüpi operatsioonide juurde, mida saab Python NumPy massiividega teha.

NumPy massiivide kasutamine Pythoni loendite kohal

Oluline on küsida, et kui Pythonil on juba keerukas andmestruktuur mitme üksuse hoidmiseks, siis miks me üldse NumPy massiive vajame? NumPy massiivid on eelistatud Pythoni loendite asemel järgmistel põhjustel:

Laske meil tõestage, et NumPy massiivid hõivavad vähem mälu. Seda saab teha kirjutades väga lihtsa Pythoni programmi:

impordi numpy kui np
impordiaeg
impordi süsteem
python_list = vahemik (500)
print (sys.getsizeof (1) * len (python_list))
numpy_arr = np.arange (500)
print (numpy_arr.suurus * numpy_arr.itemsize)

Ülaltoodud programmi käivitamisel saame järgmise väljundi:

14000
4000

See näitab, et sama suuruste loend on rohkem kui 3 korda suurus, võrreldes sama suurusega NumPy massiiviga.

NumPy toimingute tegemine

Selles jaotises vaatame kiiresti üle toimingud, mida saab NumPy massiividel teha.

Mõõtmete leidmine massiivist

Kuna NumPy massiivi saab andmete hoidmiseks kasutada mis tahes ruumilises ruumis, võime massiivi dimensiooni leida järgmise koodilõikega:

impordi numpy kui np
numpy_arr = np.massiiv ([(1,2,3), (4,5,6)])
print (numpy_arr.ndim)

Näeme väljundit kui "2", kuna see on kahemõõtmeline massiiv.

Massiivi üksuste andmetüübi leidmine

Mis tahes andmetüübi hoidmiseks võime kasutada massiivi NumPy. Uurime nüüd massiivi sisaldavate andmete andmetüüpi:

muu_arr = np.massiiv ([('aukartus', 'b', 'kass')])
print (muu_arr.dtype)
numpy_arr = np.massiiv ([(1,2,3), (4,5,6)])
print (numpy_arr.dtype)

Kasutasime ülaltoodud koodijupis erinevat tüüpi elemente. See skript näitab väljundit:

int64

See juhtub siis, kui märke tõlgendatakse unicode-märkidena ja teine ​​on ilmne.

Massiivi üksused kujundage ümber

Kui NumPy massiiv koosneb kahest reast ja 4 veerust, saab selle ümber kujundada nii, et see sisaldaks 4 rida ja 2 veergu. Kirjutame selle jaoks lihtsa koodilõigu:

originaal = np.massiiv ([('1', 'b', 'c', '4'), ('5', 'f', 'g', '8')])
print (originaal)
ümber kujundatud = originaal.ümber kujundada (4, 2)
print (ümber kujundatud)

Kui ülaltoodud koodilõik on käivitatud, saame järgmise väljundi, mille mõlemad massiivid on ekraanile trükitud:

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

Pange tähele, kuidas NumPy hoolitses elementide nihutamise ja uute ridade seostamise eest.

Matemaatilised toimingud massiivi üksustel

Massiivi üksuste matemaatiliste toimingute tegemine on väga lihtne. Alustuseks kirjutame lihtsa koodilõigu, et teada saada massiivi kõigi elementide maksimaalne, minimaalne ja lisatav arv. Siin on koodilõik:

numpy_arr = np.massiiv ([(1, 2, 3, 4, 5)])
print (numpy_arr.max ())
print (numpy_arr.min ())
print (numpy_arr.summa ())
print (numpy_arr.keskmine ())
print (np.sqrt (numpy_arr))
print (np.standard (numpy_arr))

Viimases kahes ülaltoodud toimingus arvutasime välja ka iga massiiviüksuse ruutjuure ja standardhälbe. Ülaltoodud koodilõik annab järgmise väljundi:

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

Pythoni loendite teisendamine NumPy massiivideks

Isegi kui olete oma olemasolevates programmides kasutanud Pythoni loendeid ja te ei soovi kogu seda koodi muuta, kuid soovite siiski oma uues koodis kasutada NumPy massiive, on hea teada, et saame Pythoni hõlpsasti teisendada loendisse NumPy massiivi. Siin on näide:

# Loo 2 uut loetelu pikkust ja kaalu
kõrgus = [2.37, 2.87, 1.52, 1.51, 1.70, 2.05]
kaal = [91.65, 97.52, 68.25, 88.98, 86.18, 88.45]
# Loo 2 arvukat massiivi kõrguse ja kaalu järgi
np_height = np.massiiv (kõrgus)
np_kaal = np.massiiv (kaal)

Lihtsalt kontrollimiseks saame nüüd välja printida ühe muutuja tüübi:

print (tüüp (np_height))

Ja see näitab:

Nüüd saame teha matemaatilisi toiminguid kõigi üksuste kohta korraga. Vaatame, kuidas saame inimeste KMI arvutada:

# Arvuta bmi
bmi = np_weight / np_height ** 2
# Printige tulemus
print (bmi)

See näitab kõigi inimeste KMI elementide kaupa:

[16.31682957 11.8394056 29.54033934 39.02460418 29.8200692 21.04699584]

Kas pole nii lihtne ja käepärane? Me võime andmeid hõlpsalt filtreerida ka tingimusega nurksulgudes oleva indeksi asemel:

bmi [bmi> 25]

See annab:

massiiv ([29.54033934, 39.02460418, 29.8200692])

Looge NumPy abil juhuslikud järjestused ja kordused

Kuna NumPy-s on juhuslike andmete loomiseks ja nõutavas vormis korraldamiseks palju funktsioone, kasutatakse NumPy massiive testiandmekogumi loomiseks paljudes kohtades, sealhulgas silumiseks ja testimiseks. Näiteks kui soovite luua massiivi vahemikus 0 kuni n, võime kasutada arange'i (märkige üksik r ') nagu antud koodilõik:

print (np.aranž (5))

See tagastab väljundi järgmiselt:

[0 1 2 3 4]

Sama funktsiooni saab kasutada väiksema väärtuse saamiseks, nii et massiiv algab teistest numbritest kui 0:

print (np.apelsin (4, 12))

See tagastab väljundi järgmiselt:

[4 5 6 7 8 9 10 11]

Numbrid ei pea olema pidevad, nad võivad vahele jätta sellise parandusetapi nagu:

print (np.aranž (4, 14, 2)

See tagastab väljundi järgmiselt:

[4 6 8 10 12]

Samuti võime numbrid saada kahanevas järjekorras negatiivse vahelejäetud väärtusega:

print (np.apelsin (14, 4, -1))

See tagastab väljundi järgmiselt:

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

Linspace-meetodil on võimalik rahastada n numbrit x ja y vahel võrdse ruumiga, siin on sama koodilõik:

np.linspace (algus = 10, peatus = 70, arv = 10, dtüüp = int)

See tagastab väljundi järgmiselt:

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

Pange tähele, et väljundi üksused ei ole võrdselt paigutatud. NumPy teeb selleks kõik endast oleneva, kuid te ei pea sellele lootma, kuna see ümardab.

Lõpuks vaatame, kuidas saaksime luua juhusliku järjestuse komplekti NumPy abil, mis on testimiseks üks enim kasutatavaid funktsioone. Anname NumPy'le üle arvude vahemiku, mida kasutatakse juhuslike arvude alg- ja lõpppunktina:

print (np.juhuslik.randint (0, 10, suurus = [2,2]))

Ülaltoodud koodilõik loob 2-mõõtmelise massiivi NumPy, mis sisaldab juhuslikke numbreid vahemikus 0 kuni 10. Siin on valimi väljund:

[[0 4]
[8 3]]

Pange tähele, kuna arvud on juhuslikud, võib väljund erineda isegi sama masina kahe käigu vahel.

Järeldus

Selles õppetükis vaatasime selle arvutiteegi erinevaid aspekte, mida saame koos Pythoniga kasutada nii lihtsate kui ka keeruliste matemaatiliste probleemide arvutamiseks, mis võivad tekkida erinevatel kasutusjuhtumitel. NumPy on üks olulisemaid arvutusteeki, kui tegemist on andmetöötlus ja arvulise dat arvutamine, kindlasti oskus, mis meil peab olema.

Palun jagage oma tagasisidet õppetunni kohta Twitteris @sbmaggarwal ja @LinuxHint.

Parimad Linuxi mängukonsooli emulaatorid
Selles artiklis loetletakse Linuxi jaoks saadaval olev populaarne mängukonsooli emuleerimise tarkvara. Emuleerimine on tarkvara ühilduvuse kiht, mis j...
Parimad mängude jaoks mõeldud Linuxi distrod 2021. aastal
Linuxi operatsioonisüsteem on oma algsest, lihtsast, serveripõhisest välimusest kaugele jõudnud. See operatsioonisüsteem on viimastel aastatel tohutul...
Kuidas Linuxis oma mänguseanssi jäädvustada ja voogesitada
Varem peeti mängude mängimist ainult hobiks, kuid aja jooksul kasvas mängutööstus tehnoloogia ja mängijate arvu osas tohutult. Mängupublik on veebimän...