Podatkovna znanost

Vadnica za Python NumPy

Vadnica za Python NumPy
V tej lekciji o knjižnici Python NumPy si bomo ogledali, kako nam ta knjižnica omogoča upravljanje zmogljivih objektov N-dimenzijskih nizov s prefinjenimi funkcijami za upravljanje in delovanje nad temi nizi. Da bo ta lekcija popolna, bomo zajeli naslednje razdelke:

Kaj je paket Python NumPy?

Preprosto povedano, NumPy pomeni „Numerical Python“ in to je tisto, kar želi izpolniti, da omogoča zelo enostavne in intuitivne zapletene numerične operacije na N-dimenzionalnih matričnih objektih. Je jedrna knjižnica, ki se uporablja v znanstveno računalništvo, s funkcijami, ki so na voljo za izvajanje linearnih algebrskih operacij in statističnih operacij.

Eden najbolj temeljnih (in najprivlačnejših) konceptov za NumPy je uporaba N-dimenzijskih nizov. To matriko lahko vzamemo kot samo zbirka vrstic in stolpcev, tako kot datoteka MS-Excel. Seznam Python je mogoče pretvoriti v matriko NumPy in nad njim upravljati funkcije.

Predstavitev polja NumPy

Samo opomba pred začetkom, za to lekcijo uporabljamo navidezno okolje, ki smo ga naredili z naslednjim ukazom:

python -m virtualenv numpy
vir numpy / bin / activate

Ko je navidezno okolje aktivno, lahko v virtualno env namestimo knjižnico numpy, tako da lahko izvajamo primere, ki jih ustvarimo v naslednjem primeru:

pip namestite numpy

Nekaj ​​takega vidimo, ko izvršimo zgornji ukaz:

Hitro preizkusimo, ali je bil paket NumPy pravilno nameščen, z naslednjim kratkim delčkom kode:

uvozi numpy kot np
a = np.matrika ([1,2,3])
natisni (a)

Ko zaženete zgornji program, bi morali videti naslednji izhod:

Z NumPy imamo lahko tudi večdimenzionalne nize:

multi_dimenzija = np.matrika ([(1, 2, 3), (4, 5, 6)])
tisk (multi_dimenzija)

To bo ustvarilo rezultate, kot so:

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

Anakondo lahko uporabite tudi za zagon teh primerov, kar je lažje in to smo uporabili zgoraj. Če ga želite namestiti na svoj računalnik, si oglejte lekcijo, ki opisuje »Kako namestiti Anaconda Python na Ubuntu 18.04 LTS «in delite svoje povratne informacije. Zdaj pa pojdimo naprej k različnim vrstam operacij, ki jih je mogoče izvajati s pomočjo nizov Python NumPy.

Uporaba nizov NumPy na seznamih Python

Pomembno je vprašati, če Python že ima prefinjeno podatkovno strukturo za več elementov, zakaj potem sploh potrebujemo polja NumPy? Nizi NumPy so prednost pred Pythonovimi seznami zaradi naslednjih razlogov:

Dovoli nam dokažite, da polja NumPy zasedajo manj pomnilnika. To lahko storite tako, da napišete zelo preprost program Python:

uvozi numpy kot np
čas uvoza
uvoz sys
python_list = obseg (500)
natisni (sys.getsizeof (1) * len (python_list))
numpy_arr = np.arange (500)
print (numpy_arr.velikost * numpy_arr.velikost izdelka)

Ko zaženemo zgornji program, bomo dobili naslednji izhod:

14000
4000

To kaže, da je enak seznam velikosti več kot 3-krat velikosti v primerjavi z matriko NumPy iste velikosti.

Izvajanje operacij NumPy

V tem poglavju si na hitro oglejmo operacije, ki jih je mogoče izvesti na nizih NumPy.

Iskanje dimenzij v matriki

Ker je matriko NumPy mogoče uporabiti v katerem koli dimenzijskem prostoru za shranjevanje podatkov, lahko dimenzijo matrike najdemo z naslednjim delčkom kode:

uvozi numpy kot np
numpy_arr = np.matrika ([(1,2,3), (4,5,6)])
print (numpy_arr.ndim)

Rezultat bomo videli kot »2«, saj gre za dvodimenzionalno matriko.

Iskanje podatkovnega tipa elementov v matriki

Matriko NumPy lahko uporabimo za shranjevanje katere koli vrste podatkov. Zdaj ugotovimo, kateri tip podatkov vsebuje matrika:

drugo_arr = np.matrika ([('strahospoštovanje', 'b', 'mačka')])
print (drugo_arr.dtype)
numpy_arr = np.matrika ([(1,2,3), (4,5,6)])
print (numpy_arr.dtype)

V zgornjem delčku kode smo uporabili različne vrste elementov. Tukaj je rezultat, ki ga bo prikazal ta skript:

int64

To se zgodi, ker se znaki razlagajo kot znaki unicode, drugi pa je očiten.

Preoblikujte elemente polja

Če je matrika NumPy sestavljena iz 2 vrstic in 4 stolpcev, jo je mogoče preoblikovati tako, da vsebuje 4 vrstice in 2 stolpca. Napišimo preprost delček kode za isto:

original = np.matrika ([('1', 'b', 'c', '4'), ('5', 'f', 'g', '8')])
tisk (izvirnik)
preoblikovano = izvirno.preoblikovanje (4, 2)
tisk (preoblikovan)

Ko zaženemo zgornji delček kode, dobimo naslednji izhod z obema nizoma, natisnjenima na zaslon:

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

Upoštevajte, kako je NumPy poskrbel za premik in povezovanje elementov z novimi vrsticami.

Matematične operacije nad elementi matrike

Izvajanje matematičnih operacij na elementih polja je zelo preprosto. Začeli bomo s pisanjem preprostega delčka kode, da bi ugotovili največ, najmanj in dodatek vseh elementov polja. Tu je delček kode:

numpy_arr = np.matrika ([(1, 2, 3, 4, 5)])
print (numpy_arr.največ ())
print (numpy_arr.min ())
print (numpy_arr.vsota ())
print (numpy_arr.pomeni())
natisni (np.sqrt (numpy_arr))
natisni (np.std (numpy_arr))

V zadnjih dveh zgornjih operacijah smo izračunali tudi kvadratni koren in standardni odklon posameznih elementov matrike. Zgornji delček vsebuje naslednje rezultate:

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

Pretvorba Pythonovih seznamov v polja NumPy

Tudi če ste v obstoječih programih uporabljali sezname Python in ne želite spremeniti vse te kode, vendar želite v svoji novi kodi uporabiti polja NumPy, je dobro vedeti, da lahko Python enostavno pretvorimo seznam v matriko NumPy. Tu je primer:

# Ustvari 2 nova seznama višine in teže
višina = [2.37, 2.87, 1.52, 1.51, 1.70, 2.05]
teža = [91.65, 97.52, 68.25, 88.98, 86.18, 88.45]
# Ustvari 2 numpy niza iz višine in teže
np_height = np.matrika (višina)
np_teža = np.matrika (teža)

Samo za preverjanje lahko zdaj natisnemo vrsto ene od spremenljivk:

tiskanje (vrsta (np_height))

In to bo pokazalo:

Zdaj lahko izvajamo matematične operacije nad vsemi elementi hkrati. Poglejmo, kako lahko izračunamo ITM ljudi:

# Izračunaj bmi
bmi = np_weight / np_height ** 2
# Natisnite rezultat
tiskanje (bmi)

To bo pokazalo ITM vseh ljudi, izračunanih po elementih:

[16.31682957 11.8394056 29.54033934 39.02460418 29.8200692 21.04699584]

Ali ni to enostavno in priročno? Podatke lahko celo enostavno filtriramo s pogojem namesto indeksa v oglatih oklepajih:

bmi [bmi> 25]

To bo dalo:

matrika ([29.54033934, 39.02460418, 29.8200692])

Ustvarite naključna zaporedja in ponovitve z NumPy

Številne funkcije, ki so v NumPyju na voljo za ustvarjanje naključnih podatkov in njihovo urejanje v zahtevani obliki, se velikokrat uporabljajo za ustvarjanje nabora podatkov na številnih mestih, vključno z razhroščevanjem in preskušanjem. Na primer, če želite ustvariti matriko od 0 do n, lahko uporabimo arange (upoštevajte en 'r'), kot dani delček:

natisni (np.arange (5))

To bo vrnilo izhod kot:

[0 1 2 3 4]

Z isto funkcijo lahko dobite nižjo vrednost, tako da se matrika začne z drugimi številkami, ki niso 0:

natisni (np.arange (4, 12))

To bo vrnilo izhod kot:

[4 5 6 7 8 9 10 11]

Številke ne smejo biti neprekinjene, lahko preskočijo korak popravljanja, kot je:

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

To bo vrnilo izhod kot:

[4 6 8 10 12]

Številke lahko dobimo tudi v padajočem vrstnem redu z negativno vrednostjo preskoka:

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

To bo vrnilo izhod kot:

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

Mogoče je financirati n številk med x in y z enakim presledkom z metodo linspace, tukaj je delček kode za isto:

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

To bo vrnilo izhod kot:

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

Upoštevajte, da izhodni elementi niso enakomerno razporejeni. NumPy se po svojih najboljših močeh trudi, vendar se vam ni treba zanašati na to, kot pri zaokroževanju.

Na koncu poglejmo še, kako lahko z NumPy, ki je ena najpogosteje uporabljenih funkcij za namene testiranja, ustvarimo nabor naključnih zaporedij. NumPyju bomo predali obseg števil, ki bo uporabljen kot začetna in končna točka naključnih števil:

natisni (np.naključen.randint (0, 10, velikost = [2,2]))

Zgornji odrezek ustvari dvodimenzionalno matriko NumPy, ki bo vsebovala naključna števila med 0 in 10. Tu je vzorec rezultata:

[[0 4]
[8 3]]

Prosimo, upoštevajte, da so številke naključne, izhod se lahko razlikuje tudi med dvema potekoma na isti napravi.

Zaključek

V tej lekciji smo preučili različne vidike te računalniške knjižnice, ki jih lahko uporabljamo s Pythonom za izračun tako preprostih kot tudi zapletenih matematičnih problemov, ki se lahko pojavijo v različnih primerih uporabe. NumPy je ena najpomembnejših računskih knjižnic, ko gre za podatkovni inženiring in izračun numeričnega datuma, vsekakor veščina, ki jo moramo imeti pod pasom.

Prosimo, delite svoje povratne informacije o lekciji na Twitterju z @sbmaggarwal in @LinuxHint.

Odprtokodna vrata komercialnih igralnih sistemov
Brezplačne, odprtokodne in medplatformacijske igre, ki jih lahko uporabite za igranje starih, pa tudi nekaterih dokaj nedavnih naslovov iger. V tem čl...
Najboljše igre ukazne vrstice za Linux
Ukazna vrstica ni le vaš največji zaveznik pri uporabi Linuxa - lahko je tudi vir zabave, saj jo lahko uporabljate za igranje številnih zabavnih iger,...
Najboljše aplikacije za preslikavo gamepadov za Linux
Če želite igre na Linuxu igrati z igralno ploščico namesto s tipičnim sistemom za vnos tipkovnice in miške, je za vas na voljo nekaj uporabnih aplikac...