Data Science

Výukový program pre Python NumPy

Výukový program pre Python NumPy
V tejto lekcii o knižnici Python NumPy sa pozrieme na to, ako nám táto knižnica umožňuje spravovať výkonné objekty N-dimenzionálneho poľa so sofistikovanými funkciami umožňujúcimi manipuláciu a prácu nad týmito poliami. Aby bola táto lekcia kompletná, venujeme sa týmto častiam:

Č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ť numpy

Vidí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 np
a = 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:

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:

14000
4 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 np
numpy_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í:

int64

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:

5
1
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 hmotnosti
výš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 bmi
bmi = 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.

Recenzia bezdrôtovej myši Microsoft Sculpt Touch
Nedávno som čítal o Microsoft Sculpt Touch bezdrôtová myš a rozhodol sa ju kúpiť. Po chvíli používania som sa rozhodol s ním podeliť o svoje skúsenost...
Trackpad a ukazovateľ myši AppyMouse na obrazovke pre tablety so systémom Windows
Používateľom tabletov často chýba ukazovateľ myši, najmä keď notebooky bežne používajú. Dotykové smartphony a tablety majú veľa výhod a jediným obmedz...
Stredné tlačidlo myši nefunguje v systéme Windows 10
The stredné tlačidlo myši pomáha vám prechádzať dlhé webové stránky a obrazovky s množstvom údajov. Ak sa to zastaví, budete nakoniec používať klávesn...