- Čo je balíček Python NumPy?
- Polia NumPy
- Rôzne operácie, ktoré je možné vykonať pomocou polí NumPy
- Niektoré ďalšie špeciálne funkcie
Čo je balíček Python NumPy?
Jednoducho povedané, NumPy je skratka pre „Numerical Python“ a to je to, čo chce splniť, aby umožnil zložité numerické operácie vykonávané s objektmi N-dimenzionálneho poľa veľmi ľahko a intuitívne. Je to hlavná knižnica používaná v vedecké výpočty, s prítomnými funkciami na vykonávanie lineárnych algebraických operácií a štatistických operácií.
Jedným z najzásadnejších (a najatraktívnejších) konceptov pre NumPy je jeho použitie N-rozmerných objektov poľa. Toto pole môžeme brať ako a zbierka riadkov a stĺpcov, rovnako ako súbor MS-Excel. Je možné previesť zoznam Pythonu na pole NumPy a prevádzkovať nad ním funkcie.
Reprezentácia poľa NumPy
Len na úvod pred začatím používame pre túto lekciu virtuálne prostredie, ktoré sme si vytvorili pomocou nasledujúceho príkazu:
python -m virtualenv numpyčíslo zdroja / bin / aktivovať
Keď je virtuálne prostredie aktívne, môžeme do virtuálneho env nainštalovať knižnicu numpy, aby bolo možné vykonať príklady, ktoré vytvoríme ďalej:
pip nainštalovať numpyVidíme niečo také, keď vykonáme vyššie uvedený príkaz:
Poďme rýchlo otestovať, či bol balík NumPy nainštalovaný správne, a to pomocou nasledujúceho krátkeho fragmentu kódu:
importovať numpy ako npa = np.pole ([1,2,3])
tlač (a)
Po spustení vyššie uvedeného programu by sa mal zobraziť nasledujúci výstup:
S NumPy môžeme mať aj viacrozmerné polia:
multi_dimension = np.pole ([(1, 2, 3), (4, 5, 6)])print (multi_dimension)
Toto vyprodukuje výstup ako:
[[1 2 3][4 5 6]]
Anacondu tiež môžete použiť na spustenie týchto príkladov, ktoré sú jednoduchšie a to sme použili vyššie. Ak si ho chcete nainštalovať na svoj počítač, pozrite si lekciu, ktorá popisuje „Ako nainštalovať Anaconda Python na Ubuntu 18.04 LTS ”a podeľte sa o svoje pripomienky. Poďme teraz k ďalším typom operácií, ktoré je možné vykonať pomocou polí Python NumPy.
Používanie polí NumPy nad zoznamami Pythonu
Je dôležité si položiť otázku, že keď už má Python prepracovanú dátovú štruktúru na uloženie viacerých položiek, prečo vôbec potrebujeme polia NumPy? Polia NumPy sú uprednostňované pred zoznamami Pythonu z nasledujúcich dôvodov:
- Pohodlné použitie pre matematické a výpočtové náročné operácie kvôli prítomnosti kompatibilných funkcií NumPy
- Sú oveľa rýchlejšie a rýchlejšie vďaka spôsobu, akým interne ukladajú údaje
- Menej pamäte
Dovoľte nám dokázať, že polia NumPy zaberajú menej pamäte. To sa dá dosiahnuť napísaním veľmi jednoduchého programu v jazyku Python:
importovať numpy ako npčas importu
import sys
python_list = rozsah (500)
tlač (sys.getsizeof (1) * len (python_list))
numpy_arr = np.pomaranč (500)
print (numpy_arr.veľkosť * numpy_arr.veľkosť položky)
Keď spustíme vyššie uvedený program, dostaneme nasledujúci výstup:
140004 000
To ukazuje, že je rovnaký zoznam veľkostí viac ako 3 krát v porovnaní s rovnakou veľkosťou poľa NumPy.
Vykonávanie operácií NumPy
V tejto časti sa rýchlo pozrime na operácie, ktoré je možné vykonať na poliach NumPy.
Hľadanie rozmerov v poli
Pretože pole NumPy je možné použiť v akomkoľvek dimenzionálnom priestore na uchovanie údajov, dimenziu poľa môžeme nájsť pomocou nasledujúceho útržku kódu:
importovať numpy ako npnumpy_arr = np.pole ([(1,2,3), (4,5,6)])
print (numpy_arr.ndim)
Uvidíme výstup ako „2“, pretože ide o dvojrozmerné pole.
Nájdenie dátového typu položiek v poli
Na uchovanie ľubovoľného dátového typu môžeme použiť pole NumPy. Poďme teraz zistiť dátový typ údajov, ktoré pole obsahuje:
other_arr = np.pole ([('awe', 'b', 'cat')]))print (other_arr.dtype)
numpy_arr = np.pole ([(1,2,3), (4,5,6)])
print (numpy_arr.dtype)
Vo vyššie uvedenom útržku kódu sme použili iný typ prvkov. Tu je výstup, ktorý tento skript zobrazí:
Stáva sa to preto, lebo znaky sú interpretované ako znaky unicode a druhý je zrejmý.
Upravte tvar poľa
Ak sa pole NumPy skladá z 2 riadkov a 4 stĺpcov, je možné ho zmeniť tak, aby obsahovalo 4 riadky a 2 stĺpce. Napíšme jednoduchý útržok kódu pre to isté:
originál = np.pole ([('1', 'b', 'c', '4'), ('5', 'f', 'g', '8')])tlač (originál)
pretvarované = originálne.pretvarovať (4, 2)
tlač (zmenené)
Po spustení vyššie uvedeného fragmentu kódu dostaneme nasledujúci výstup s obidvoma poľami vytlačenými na obrazovku:
[['' 1 '' b '' c '' 4 ']['5' 'f' 'g' '8']]
[['' '' B ']
['c' '4']
['5' 'f']
['g' '8']]
Všimnite si, ako sa NumPy postaral o posunutie a priradenie prvkov k novým riadkom.
Matematické operácie s položkami poľa
Vykonávanie matematických operácií s položkami poľa je veľmi jednoduché. Začneme napísaním jednoduchého útržku kódu, pomocou ktorého zistíme maximum, minimum a pridanie všetkých položiek poľa. Tu je útržok kódu:
numpy_arr = np.pole ([(1, 2, 3, 4, 5)])print (numpy_arr.max ())
print (numpy_arr.min ())
print (numpy_arr.suma ())
print (numpy_arr.priemer ())
tlač (np.sqrt (numpy_arr))
tlač (np.std (numpy_arr))
V posledných 2 vyššie uvedených operáciách sme tiež vypočítali druhú odmocninu a štandardnú odchýlku jednotlivých položiek poľa. Úryvok vyššie poskytne nasledujúci výstup:
51
15
3.0
[[1. 1.41421356 1.73205081 2. 2.23606798]]
1.4142135623730951
Prevod zoznamov Pythonu na polia NumPy
Aj keď ste vo svojich existujúcich programoch používali zoznamy Pythonu a nechcete meniť celý tento kód, ale stále chcete vo svojom novom kóde využívať polia NumPy, je dobré vedieť, že program Python môžeme ľahko konvertovať. zoznam do poľa NumPy. Tu je príklad:
# Vytvorte 2 nové zoznamy výšky a hmotnostivýška = [2.37, 2.87, 1.52, 1.51, 1.70, 2.05]
hmotnosť = [91.65, 97.52, 68.25, 88.98, 86.18, 88.45]
# Vytvorte 2 početné polia z výšky a hmotnosti
np_height = np.pole (výška)
np_weight = np.pole (váha)
Len pre kontrolu, teraz môžeme vytlačiť typ jednej z premenných:
tlač (typ (np_height))A toto ukáže:
Teraz môžeme vykonávať matematické operácie so všetkými položkami naraz. Pozrime sa, ako môžeme vypočítať BMI ľudí:
# Vypočítajte bmibmi = np_weight / np_height ** 2
# Výsledok vytlačte
tlač (bmi)
Zobrazí sa BMI všetkých ľudí vypočítané po prvkoch:
[16.31682957 11.8394056 29.54033934 39.02460418 29.8200692 21.04699584]Nie je to ľahké a praktické? Môžeme dokonca ľahko filtrovať údaje s podmienkou namiesto indexu v hranatých zátvorkách:
bmi [bmi> 25]Takto získate:
pole ([29.54033934, 39.02460418, 29.8200692])Vytvárajte náhodné sekvencie a opakovania pomocou NumPy
Vďaka mnohým funkciám NumPy na vytváranie náhodných údajov a ich usporiadanie do požadovanej formy sa polia NumPy mnohokrát používajú pri generovaní testovacích údajov na mnohých miestach, vrátane ladenia a testovacích účelov. Napríklad, ak chcete vytvoriť pole od 0 do n, môžeme použiť arange (všimnite si jedno „r“) ako daný úryvok:
tlač (np.arange (5))Týmto sa vráti výstup ako:
[0 1 2 3 4]Rovnakou funkciou je možné poskytnúť nižšiu hodnotu, aby pole začínalo od iných čísel ako 0:
tlač (np.pomaranč (4, 12))Týmto sa vráti výstup ako:
[4 5 6 7 8 9 10 11]Čísla nemusia byť súvislé, môžu preskočiť krok opravy, napríklad:
tlač (np.pomaranč (4, 14, 2))Týmto sa vráti výstup ako:
[4 6 8 10 12]Môžeme tiež získať čísla v zostupnom poradí so zápornou hodnotou preskočenia:
tlač (np.arange (14, 4, -1))Týmto sa vráti výstup ako:
[14 13 12 11 10 9 8 7 6 5]Je možné financovať n čísel medzi x a y s rovnakým priestorom metódou linspace, tu je úryvok kódu pre rovnaké:
np.riadkový priestor (štart = 10, stop = 70, num = 10, dtype = int)Týmto sa vráti výstup ako:
pole ([10, 16, 23, 30, 36, 43, 50, 56, 63, 70])Upozorňujeme, že výstupné položky nie sú rovnako rozmiestnené. NumPy sa snaží robiť to najlepšie, ale nemusíte sa na to spoliehať, pretože to zaokrúhľuje.
Na záver sa pozrime, ako môžeme pomocou NumPy vygenerovať množinu náhodných sekvencií, čo je jedna z najpoužívanejších funkcií na testovacie účely. NumPy odovzdáme rozsah čísel, ktoré sa použijú ako počiatočný a posledný bod pre náhodné čísla:
tlač (np.náhodný.opätovné zadanie (0, 10, veľkosť = [2,2]))Vyššie uvedený úryvok vytvára dimenzionálne pole NumPy s rozmermi 2 x 2, ktoré bude obsahovať náhodné čísla od 0 do 10. Tu je ukážka výstupu:
[[0 4][8 3]]
Upozorňujeme, že keďže čísla sú náhodná, výstup sa môže líšiť aj medzi dvoma spusteniami na rovnakom stroji.
Záver
V tejto lekcii sme sa pozreli na rôzne aspekty tejto výpočtovej knižnice, ktoré môžeme v Pythone použiť na výpočet jednoduchých aj zložitých matematických problémov, ktoré môžu vzniknúť v rôznych prípadoch použitia. NumPy je jednou z najdôležitejších výpočtových knižníc, pokiaľ ide o dátové inžinierstvo a výpočet číselných údajov, určite zručnosť, ktorú musíme mať pod opaskom.
Podeľte sa o svoju spätnú väzbu k lekcii na Twitteri s @sbmaggarwal a @LinuxHint.