- Što je Python NumPy paket?
- Nizovi NumPy
- Različite operacije koje se mogu izvoditi preko NumPy nizova
- Još neke posebne funkcije
Što je Python NumPy paket?
Jednostavno rečeno, NumPy je kratica od "Numerički Python" i to je ono što želi ispuniti, kako bi se omogućile složene numeričke operacije izvedene na objektima N-dimenzionalnih nizova vrlo lako i na intuitivan način. To je temeljna knjižnica koja se koristi u znanstveno računanje, s funkcijama prisutnim za izvođenje linearnih algebarskih operacija i statističkih operacija.
Jedan od najtemeljnijih (i najatraktivnijih) koncepata za NumPy je njegova upotreba N-dimenzionalnih polja. Ovaj niz možemo uzeti kao samo zbirka redaka i stupaca, baš kao MS-Excel datoteka. Moguće je pretvoriti Python popis u NumPy niz i upravljati funkcijama preko njega.
Zastupljenost NumPy niza
Samo napomenu prije početka, za ovu lekciju koristimo virtualno okruženje koje smo napravili sljedećom naredbom:
python -m virtualenv numpyizvor numpy / bin / activate
Jednom kada je virtualno okruženje aktivno, možemo instalirati numpy knjižnicu unutar virtualnog okruženja tako da se mogu izvršavati primjeri koje sljedeći kreiramo:
pip instalirati numpyOtprilike ovako vidimo kad izvršimo gornju naredbu:
Brzo provjerimo je li paket NumPy pravilno instaliran sa sljedećim kratkim isječkom koda:
uvoz numpy kao npa = np.niz ([1,2,3])
ispis (a)
Jednom kada pokrenete gornji program, trebali biste vidjeti sljedeći izlaz:
Također možemo imati višedimenzionalne nizove s NumPy:
multi_dimenzija = np.niz ([(1, 2, 3), (4, 5, 6)])ispis (multi_dimenzija)
To će proizvesti izlaz poput:
[[1 2 3][4 5 6]]
Anacondu možete koristiti i za pokretanje ovih primjera, što je lakše i to je ono što smo gore koristili. Ako ga želite instalirati na svoj stroj, pogledajte lekciju koja opisuje „Kako instalirati Anaconda Python na Ubuntu 18.04 LTS ”i podijelite svoje povratne informacije. Krenimo sada na razne vrste operacija koje se mogu izvoditi s Python NumPy nizovima.
Korištenje NumPy polja preko Python popisa
Važno je pitati kada Python već ima sofisticiranu strukturu podataka koja sadrži više stavki, zašto nam uopće trebaju NumPy nizovi? Nizovi NumPy su preferirana nad Pythonovim popisima iz sljedećih razloga:
- Prikladan za upotrebu u matematičkim i računalnim intenzivnim operacijama zbog prisutnosti kompatibilnih NumPy funkcija
- Puno su brži zahvaljujući načinu internog pohranjivanja podataka
- Manje memorije
Pusti nas dokazati da nizi NumPy zauzimaju manje memorije. To se može učiniti pisanjem vrlo jednostavnog Python programa:
uvoz numpy kao npvrijeme uvoza
import sys
python_list = raspon (500)
ispis (sys.getsizeof (1) * len (python_list))
numpy_arr = np.narančasto (500)
ispis (numpy_arr.veličina * numpy_arr.veličina predmeta)
Kada pokrenemo gornji program, dobit ćemo sljedeći izlaz:
140004000
To pokazuje da je isti popis veličina više od 3 puta u veličini u usporedbi s nizom NumPy iste veličine.
Izvođenje NumPy operacija
U ovom ćemo odjeljku na brzinu pregledati operacije koje se mogu izvesti na NumPy nizovima.
Pronalaženje dimenzija u nizu
Kako se niz NumPy može koristiti u bilo kojem dimenzionalnom prostoru za držanje podataka, dimenziju niza možemo pronaći sa sljedećim isječkom koda:
uvoz numpy kao npnumpy_arr = np.niz ([(1,2,3), (4,5,6)])
ispis (numpy_arr.ndim)
Izlaz ćemo vidjeti kao "2" jer je ovo dvodimenzionalni niz.
Pronalaženje tipa podataka stavki u polju
Niz NumPy možemo koristiti za držanje bilo koje vrste podataka. Otkrijmo sada vrstu podataka podataka koje niz sadrži:
ostalo_arr = np.niz ([('strahopoštovanje', 'b', 'mačka')])ispis (other_arr.dtip)
numpy_arr = np.niz ([(1,2,3), (4,5,6)])
ispis (numpy_arr.dtip)
U gornjem isječku koda koristili smo različite vrste elemenata. Evo rezultata koje će pokazati ova skripta:
To se događa jer se znakovi tumače kao unicode znakovi, a drugi je očit.
Preoblikujte stavke niza
Ako se niz NumPy sastoji od 2 retka i 4 stupca, može se preoblikovati tako da sadrži 4 retka i 2 stupca. Napišimo jednostavan isječak koda za isto:
izvornik = np.niz ([('1', 'b', 'c', '4'), ('5', 'f', 'g', '8')])ispis (izvornik)
preoblikovano = izvorno.preoblikovati (4, 2)
ispis (preoblikovano)
Jednom kada pokrenemo gornji isječak koda, dobit ćemo sljedeći izlaz s oba polja ispisana na zaslon:
[['1' 'b' 'c' '4']['5' 'f' 'g' '8']]
[['1' 'b']
['c' '4']
['5' 'f']
['g' '8']]
Primijetite kako se NumPy pobrinuo za prebacivanje i pridruživanje elemenata novim redovima.
Matematičke operacije nad stavkama niza
Izvođenje matematičkih operacija na stavkama niza vrlo je jednostavno. Započet ćemo pisanjem jednostavnog isječka koda kako bismo saznali maksimum, minimum i dodavanje svih stavki niza. Evo isječka koda:
numpy_arr = np.niz ([(1, 2, 3, 4, 5)])ispis (numpy_arr.maks. ())
ispis (numpy_arr.min ())
ispis (numpy_arr.iznos())
ispis (numpy_arr.znači ())
ispis (np.sqrt (numpy_arr))
ispis (np.std (numpy_arr))
U posljednje 2 gornje operacije izračunali smo i kvadratni korijen i standardno odstupanje svake stavke niza. Gornji isječak pružit će sljedeći izlaz:
51
15
3.0
[[1. 1.41421356 1.73205081 2. 2.23606798]]
1.4142135623730951
Pretvaranje Python popisa u NumPy nizove
Čak i ako koristite Python popise u postojećim programima i ne želite mijenjati sav taj kôd, ali i dalje želite koristiti NumPy nizove u novom kodu, dobro je znati da Python možemo lako pretvoriti popis u niz NumPy. Evo primjera:
# Stvorite 2 nova popisa visine i težinevisina = [2.37, 2.87, 1.52, 1.51, 1.70, 2.05]
težina = [91.65, 97.52, 68.25, 88.98, 86.18, 88.45]
# Stvorite 2 numpy niza od visine i težine
np_height = np.niz (visina)
np_težina = np.niz (težina)
Samo da provjerimo, sada možemo ispisati vrstu jedne od varijabli:
ispis (vrsta (np_height))I ovo će pokazati:
Sada možemo izvršavati matematičke operacije nad svim stavkama odjednom. Pogledajmo kako možemo izračunati BMI ljudi:
# Izračunaj bmibmi = np_weight / np_height ** 2
# Ispišite rezultat
ispis (bmi)
Ovo će pokazati BMI svih ljudi izračunatih po elementima:
[16.31682957 11.8394056 29.54033934 39.02460418 29.8200692 21.04699584]Nije li to lako i zgodno? Čak možemo lako filtrirati podatke uz uvjet umjesto indeksa unutar uglatih zagrada:
bmi [bmi> 25]To će dati:
niz ([29.54033934, 39.02460418, 29.8200692])Stvorite slučajne sekvence i ponavljanja pomoću NumPy-a
Uz brojne značajke prisutne u NumPyu za stvaranje slučajnih podataka i njihovo raspoređivanje u potrebnom obliku, NumPy nizovi se mnogo puta koriste za generiranje skupa podataka na mnogim mjestima, uključujući uklanjanje pogrešaka i testiranje. Na primjer, ako želite stvoriti niz od 0 do n, možemo koristiti arange (imajte na umu jedan 'r') poput datog isječka:
ispis (np.narančasto (5))Ovo će vratiti izlaz kao:
[0 1 2 3 4]Ista se funkcija može koristiti za pružanje niže vrijednosti tako da niz započinje s brojevima koji nisu 0:
ispis (np.rasporedi (4, 12))Ovo će vratiti izlaz kao:
[4 5 6 7 8 9 10 11]Brojevi ne moraju biti kontinuirani, oni mogu preskočiti korak popravljanja poput:
ispis (np.rasporedi (4, 14, 2))Ovo će vratiti izlaz kao:
[4 6 8 10 12]Brojeve također možemo dobiti u opadajućem redoslijedu s negativnom vrijednošću preskakanja:
ispis (np.rasporedi (14, 4, -1))Ovo će vratiti izlaz kao:
[14 13 12 11 10 9 8 7 6 5]Moguće je financirati n brojeva između x i y jednakim razmakom metodom linspace, ovdje je isječak koda za isti:
np.Linspace (početak = 10, zaustavljanje = 70, num = 10, dtype = int)Ovo će vratiti izlaz kao:
niz ([10, 16, 23, 30, 36, 43, 50, 56, 63, 70])Imajte na umu da izlazne stavke nisu jednako raspoređene. NumPy čini sve da to učini, ali ne trebate se na to oslanjati kao što je zaokruživanje.
Na kraju, pogledajmo kako možemo generirati skup slučajnih nizova pomoću NumPy-a koji je jedna od najčešće korištenih funkcija u svrhu testiranja. NumPy-u ćemo proslijediti niz brojeva koji će se koristiti kao početna i konačna točka za slučajne brojeve:
ispis (np.slučajno.randint (0, 10, veličina = [2,2]))Gornji isječak stvara dvodimenzionalni NumPy niz koji će sadržavati slučajne brojeve između 0 i 10. Evo uzorka rezultata:
[[0 4][8 3]]
Imajte na umu kako su brojevi slučajni, izlaz se može razlikovati čak i između 2 pokretanja na istom stroju.
Zaključak
U ovoj smo lekciji pogledali različite aspekte ove računalne knjižnice koje možemo koristiti s Pythonom za izračunavanje jednostavnih, ali i složenih matematičkih problema koji se mogu pojaviti u različitim slučajevima korištenja. NumPy je jedna od najvažnijih računalnih knjižnica kada je riječ o podatkovno inženjerstvo i izračunavanje numeričkih datuma, definitivno vještina koju trebamo imati ispod pojasa.
Molimo podijelite svoje povratne informacije o lekciji na Twitteru s @sbmaggarwal i @LinuxHint.