Data Science

Výukový program Python NumPy

Výukový program Python NumPy
V této lekci o knihovně Python NumPy se podíváme na to, jak nám tato knihovna umožňuje spravovat výkonné N-dimenzionální objekty pole se sofistikovanými funkcemi pro manipulaci a práci nad těmito poli. Aby byla tato lekce kompletní, probereme následující části:

Co je balíček Python NumPy?

Jednoduše řečeno, NumPy znamená „Numerical Python“ a to je to, co chce splnit, aby bylo možné velmi snadno a intuitivně provádět složité numerické operace prováděné s objekty N-dimenzionálního pole. Je to základní knihovna používaná v vědecké výpočty, s přítomnými funkcemi k provádění lineárních algebraických operací a statistických operací.

Jedním z nejzásadnějších (a nejatraktivnějších) konceptů pro NumPy je jeho použití N-dimenzionálních objektů pole. Toto pole můžeme brát jako a kolekce řádků a sloupců, stejně jako soubor MS-Excel. Je možné převést seznam Pythonu na pole NumPy a ovládat nad ním funkce.

Reprezentace pole NumPy

Jen poznámka před spuštěním, pro tuto lekci používáme virtuální prostředí, které jsme vytvořili pomocí následujícího příkazu:

python -m virtualenv numpy
číslo zdroje / bin / aktivovat

Jakmile je virtuální prostředí aktivní, můžeme nainstalovat virtuální knihovnu ve virtuálním prostředí, aby bylo možné provést příklady, které vytvoříme dále:

pip install numpy

Vidíme něco takového, když provedeme výše uvedený příkaz:

Rychle otestujeme, zda byl balíček NumPy nainstalován správně, pomocí následujícího krátkého fragmentu kódu:

importovat numpy jako np
a = np.pole ([1,2,3])
tisk (a)

Po spuštění výše uvedeného programu byste měli vidět následující výstup:

Můžeme také mít vícerozměrná pole s NumPy:

multi_dimension = np.pole ([(1, 2, 3), (4, 5, 6)])
tisk (multi_dimension)

Tím se vytvoří výstup jako:

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

Anacondu můžete také použít ke spuštění těchto příkladů, což je jednodušší a to jsme použili výše. Chcete-li jej nainstalovat na svůj počítač, podívejte se na lekci, která popisuje „Jak nainstalovat Anaconda Python na Ubuntu 18.04 LTS ”a podělte se o svůj názor. Nyní přejdeme k různým typům operací, které lze provádět pomocí polí Python NumPy.

Používání polí NumPy nad seznamy Pythonu

Je důležité se zeptat, že když Python již má propracovanou datovou strukturu pro uložení více položek, proč vůbec potřebujeme pole NumPy? Pole NumPy jsou přednost před seznamy Pythonu z následujících důvodů:

Dovolte nám prokázat, že pole NumPy zabírají méně paměti. Toho lze dosáhnout napsáním velmi jednoduchého programu v Pythonu:

importovat numpy jako np
čas importu
import sys
python_list = rozsah (500)
tisk (sys.getsizeof (1) * len (python_list))
numpy_arr = np.divoký (500)
tisk (numpy_arr.velikost * numpy_arr.velikost položky)

Když spustíme výše uvedený program, dostaneme následující výstup:

14000
4000

To ukazuje, že je stejný seznam velikostí více než 3krát ve velikosti ve srovnání se stejnou velikostí pole NumPy.

Provádění operací NumPy

V této části se podívejme rychle na operace, které lze provést na polích NumPy.

Hledání dimenzí v poli

Protože pole NumPy lze použít v jakémkoli dimenzionálním prostoru k uložení dat, můžeme najít dimenzi pole pomocí následujícího fragmentu kódu:

importovat numpy jako np
numpy_arr = np.pole ([(1,2,3), (4,5,6)])
tisk (numpy_arr.ndim)

Uvidíme výstup jako „2“, protože se jedná o dvourozměrné pole.

Nalezení datového typu položek v poli

K uložení libovolného datového typu můžeme použít pole NumPy. Pojďme nyní zjistit datový typ dat, která pole obsahuje:

other_arr = np.pole ([('awe', 'b', 'cat')])
print (other_arr.dtype)
numpy_arr = np.pole ([(1,2,3), (4,5,6)])
tisk (numpy_arr.dtype)

Ve výše uvedeném fragmentu kódu jsme použili jiný typ prvků. Zde je výstup, který tento skript zobrazí:

int64

K tomu dochází, protože znaky jsou interpretovány jako znaky unicode a druhý je zřejmý.

Přetvarujte položky pole

Pokud se pole NumPy skládá ze 2 řádků a 4 sloupců, lze jej změnit tak, aby obsahovalo 4 řádky a 2 sloupce. Pojďme napsat stejný úryvek kódu:

originál = np.pole ([('1', 'b', 'c', '4'), ('5', 'f', 'g', '8')])
tisk (originál)
přetvořeno = originál.přetvořit (4, 2)
tisknout (přetvořit)

Jakmile spustíme výše uvedený fragment kódu, získáme následující výstup s oběma poli vytištěnými na obrazovku:

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

Všimněte si, jak se NumPy postaral o posunutí a přidružení prvků k novým řádkům.

Matematické operace s položkami pole

Provádění matematických operací s položkami pole je velmi jednoduché. Začneme tím, že napíšeme jednoduchý fragment kódu, abychom zjistili maximum, minimum a přidání všech položek pole. Zde je fragment kódu:

numpy_arr = np.pole ([(1, 2, 3, 4, 5)])
tisk (numpy_arr.max ())
tisk (numpy_arr.min ())
tisk (numpy_arr.součet())
tisk (numpy_arr.znamenat())
tisk (np.sqrt (numpy_arr))
tisk (np.std (numpy_arr))

V posledních 2 výše uvedených operacích jsme také vypočítali druhou odmocninu a směrodatnou odchylku jednotlivých položek pole. Výše uvedený úryvek poskytne následující výstup:

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

Převod seznamů Pythonu na pole NumPy

I když ve svých stávajících programech používáte seznamy Pythonu a nechcete celý tento kód měnit, ale přesto chcete ve svém novém kódu využít pole NumPy, je dobré vědět, že můžeme Python snadno převést seznam do pole NumPy. Zde je příklad:

# Vytvořte 2 nové seznamy výšky a hmotnosti
výška = [2.37, 2.87, 1.52, 1.51, 1.70, 2.05]
hmotnost = [91.65, 97.52, 68.25, 88.98, 86.18, 88.45]
# Vytvořte 2 početní pole z výšky a hmotnosti
np_height = np.pole (výška)
np_weight = np.pole (hmotnost)

Jen pro kontrolu, nyní můžeme vytisknout typ jedné z proměnných:

tisk (typ (np_height))

A to ukáže:

Nyní můžeme provádět matematické operace se všemi položkami najednou. Podívejme se, jak můžeme vypočítat BMI lidí:

# Vypočítejte bmi
bmi = np_weight / np_height ** 2
# Vytiskněte výsledek
tisk (bmi)

Ukáže se BMI všech lidí vypočítané po jednotlivých prvcích:

[16.31682957 11.8394056 29.54033934 39.02460418 29.8200692 21.04699584]

Není to snadné a praktické? Můžeme dokonce snadno filtrovat data s podmínkou namísto indexu uvnitř hranatých závorek:

bmi [bmi> 25]

Tím získáte:

pole ([29.54033934, 39.02460418, 29.8200692])

Vytvářejte náhodné sekvence a opakování pomocí NumPy

S mnoha funkcemi přítomnými v NumPy pro vytváření náhodných dat a jejich uspořádání v požadované formě se pole NumPy mnohokrát používají při generování testovací datové sady na mnoha místech, včetně ladění a testování. Například pokud chcete vytvořit pole od 0 do n, můžeme použít arange (všimněte si jediného 'r') jako daný úryvek:

tisk (np.arange (5))

Tím se vrátí výstup jako:

[0 1 2 3 4]

Stejnou funkci lze použít k poskytnutí nižší hodnoty, takže pole začíná od jiných čísel než 0:

tisk (np.arange (4, 12))

Tím se vrátí výstup jako:

[4 5 6 7 8 9 10 11]

Čísla nemusí být spojitá, mohou přeskočit opravný krok jako:

tisk (np.arange (4, 14, 2))

Tím se vrátí výstup jako:

[4 6 8 10 12]

Můžeme také získat čísla v sestupném pořadí se zápornou hodnotou přeskočení:

tisk (np.arange (14, 4, -1))

Tím se vrátí výstup jako:

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

Je možné financovat n čísel mezi x a y se stejným prostorem pomocí metody linspace, zde je fragment kódu pro stejné:

np.linspace (start = 10, stop = 70, num = 10, dtype = int)

Tím se vrátí výstup jako:

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

Pamatujte, že výstupní položky nejsou rovnoměrně rozmístěny. NumPy dělá vše pro to, ale nemusíte se na to spoléhat, protože to dělá zaokrouhlování.

Na závěr se podívejme, jak můžeme generovat sadu náhodných sekvencí pomocí NumPy, což je jedna z nejpoužívanějších funkcí pro účely testování. Předáme řadu čísel NumPy, která budou použita jako počáteční a konečný bod pro náhodná čísla:

tisk (np.náhodný.randint (0, 10, velikost = [2,2]))

Výše uvedený úryvek vytvoří dimenzionální pole NumPy o rozměrech 2 x 2, které bude obsahovat náhodná čísla mezi 0 a 10. Zde je ukázkový výstup:

[[0 4]
[8 3]]

Vezměte prosím na vědomí, že čísla jsou náhodná, výstup se může lišit i mezi 2 běhy na stejném stroji.

Závěr

V této lekci jsme se podívali na různé aspekty této výpočetní knihovny, které můžeme v Pythonu použít k výpočtu jednoduchých i složitých matematických problémů, které mohou nastat v různých případech použití. NumPy je jednou z nejdůležitějších výpočetních knihoven, pokud jde o datové inženýrství a výpočet číselných dat, určitě dovednost, kterou musíme mít pod opaskem.

Sdělte nám svůj názor na lekci na Twitteru s @sbmaggarwal a @LinuxHint.

Hry Jak používat AutoKey k automatizaci linuxových her
Jak používat AutoKey k automatizaci linuxových her
AutoKey je nástroj pro automatizaci stolních počítačů pro systémy Linux a X11, programovaný v programech Python 3, GTK a Qt. Pomocí jeho funkcí skript...
Hry Jak zobrazit počítadlo FPS v linuxových hrách
Jak zobrazit počítadlo FPS v linuxových hrách
Hraní na Linuxu získalo velký tlak, když společnost Valve v roce 2012 oznámila podporu systému Linux pro klienta Steam a jejich hry. Od té doby se mno...
Hry Jak stáhnout a přehrát Sid Meier's Civilization VI v systému Linux
Jak stáhnout a přehrát Sid Meier's Civilization VI v systému Linux
Úvod do hry Civilization 6 je moderní pojetí klasického konceptu představeného v sérii her Age of Empires. Myšlenka byla docela jednoduchá; začali bys...