- Mis on Python NumPy pakett?
- NumPy massiivid
- Erinevad toimingud, mida saab teha NumPy massiividega
- Veel mõned erifunktsioonid
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 numpyallikas 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 npa = 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:
- Ühilduvate NumPy funktsioonide tõttu on seda mugav kasutada matemaatilistes ja arvutuslikes toimingutes
- Need on palju kiiremad tänu sisemisele andmete salvestamise viisile
- Vähem mälu
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 npimpordiaeg
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:
140004000
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 npnumpy_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:
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:
51
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 kaalukõ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 bmibmi = 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.