Duomenų mokslas

„Python NumPy“ pamoka

„Python NumPy“ pamoka
Šioje „Python NumPy“ bibliotekos pamokoje apžvelgsime, kaip ši biblioteka leidžia mums valdyti galingus N matmenų masyvo objektus su sudėtingomis funkcijomis, kad galėtume manipuliuoti ir valdyti šias masyvus. Kad ši pamoka būtų baigta, apimsime šiuos skyrius:

Kas yra „Python NumPy“ paketas?

Paprasčiau tariant, „NumPy“ reiškia „Numerical Python“ ir tai, ką jis siekia įvykdyti, leidžia labai lengvai ir intuityviai atlikti sudėtingas skaitmenines operacijas, atliekamas su N matmenų masyvo objektais. Tai yra pagrindinė biblioteka, naudojama mokslinis skaičiavimas, su funkcijomis, atliekamomis tiesinėms algebrinėms ir statistinėms operacijoms atlikti.

Viena iš svarbiausių (ir patraukliausių) „NumPy“ sąvokų yra N matmenų masyvo objektų naudojimas. Šį masyvą galime laikyti tik a eilučių ir stulpelių kolekcija, kaip ir „MS-Excel“ failas. Galima konvertuoti „Python“ sąrašą į „NumPy“ masyvą ir valdyti jame funkcijas.

„NumPy Array“ vaizdavimas

Prieš pradėdami tik pastabą, mes naudojame virtualią aplinką šioje pamokoje, kurią padarėme naudodami šią komandą:

python -m virtualenv numpy
šaltinio numpy / bin / aktyvuoti

Kai virtuali aplinka bus aktyvi, mes galime įdiegti „Numpy“ biblioteką virtualioje aplinkoje, kad būtų galima vykdyti toliau sukurtus pavyzdžius:

„pip install numpy“

Mes matome kažką panašaus, kai vykdome pirmiau nurodytą komandą:

Greitai patikrinkime, ar „NumPy“ paketas buvo tinkamai įdiegtas, naudodami šį trumpą kodo fragmentą:

importuoti numerį kaip np
a = np.masyvas ([1,2,3])
spausdinti (a)

Kai paleisite pirmiau nurodytą programą, turėtumėte pamatyti šį išvestį:

Su „NumPy“ taip pat galime turėti daugialypius matricas:

multi_dimension = np.masyvas ([(1, 2, 3), (4, 5, 6)])
spausdinti (multi_dimension)

Tai sukurs tokią produkciją:

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

Taip pat galite naudoti „Anaconda“, kad paleistumėte šiuos pavyzdžius, kurie yra lengvesni, ir tai mes naudojome aukščiau. Jei norite jį įdiegti savo kompiuteryje, peržiūrėkite pamoką, kurioje aprašyta „Kaip įdiegti„ Anaconda Python “į„ Ubuntu 18 “.04 LTS “ir pasidalykite savo atsiliepimais. Dabar pereikime prie įvairių tipų operacijų, kurias galima atlikti naudojant „Python NumPy“ masyvus.

„NumPy“ masyvų naudojimas virš „Python“ sąrašų

Svarbu paklausti, kad kai „Python“ jau turi sudėtingą duomenų struktūrą keliems elementams laikyti, kodėl mums apskritai reikalingi „NumPy“ masyvai? „NumPy“ masyvai yra teikiama pirmenybė prieš „Python“ sąrašus dėl šių priežasčių:

Leisk mums įrodyti, kad „NumPy“ masyvai užima mažiau atminties. Tai galima padaryti parašius labai paprastą „Python“ programą:

importuoti numerį kaip np
importo laikas
importuoti sistemas
python_list = diapazonas (500)
spausdinti (sys.getsizeof (1) * len (python_list))
numpy_arr = np.apelsinas (500)
spausdinti (numpy_arr.dydis * numpy_arr.prekės dydis)

Vykdydami pirmiau nurodytą programą, gausime tokį išėjimą:

14000 m
4000

Tai rodo, kad to paties dydžio sąrašas yra daugiau nei 3 kartus dydžio, palyginti su to paties dydžio „NumPy“ masyvu.

„NumPy“ operacijų atlikimas

Šiame skyriuje greitai apžvelkime operacijas, kurias galima atlikti su „NumPy“ masyvais.

Masyvo matmenų paieška

Kadangi „NumPy“ masyvas gali būti naudojamas bet kurioje matmenų erdvėje duomenims laikyti, masyvo matmenį galime rasti naudodami šį kodo fragmentą:

importuoti numerį kaip np
numpy_arr = np.masyvas ([(1,2,3), (4,5,6)])
spausdinti (numpy_arr.ndim)

Išvestį matysime kaip „2“, nes tai yra dvimatis masyvas.

Masyvo elementų duomenų tipo paieška

Bet kokio tipo duomenims laikyti galime naudoti „NumPy“ masyvą. Dabar sužinokime masyvo duomenų tipą:

other_arr = np.masyvas ([('baimė', 'b', 'katė')])
spausdinti (other_arr.dtype)
numpy_arr = np.masyvas ([(1,2,3), (4,5,6)])
spausdinti (numpy_arr.dtype)

Pirmiau pateiktame kodo fragmente naudojome skirtingo tipo elementus. Štai išvestis, kurią parodys šis scenarijus:

int64

Tai atsitinka, nes simboliai aiškinami kaip „unicode“ simboliai, o antrasis yra akivaizdus.

Formuokite masyvo elementus

Jei „NumPy“ masyvą sudaro 2 eilutės ir 4 stulpeliai, jį galima pertvarkyti, kad jame būtų 4 eilutės ir 2 stulpeliai. Parašykime paprastą to paties kodo fragmentą:

originalas = np.masyvas ([('1', 'b', 'c', '4'), ('5', 'f', 'g', '8')])
spausdinti (originalas)
pertvarkytas = originalus.pertvarkyti (4, 2)
spausdinti (pertvarkytas)

Vykdydami pirmiau pateiktą kodo fragmentą, gausime šią išvestį su abiem matricomis, atspausdintomis ekrane:

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

Atkreipkite dėmesį, kaip „NumPy“ rūpinosi elementų perkėlimu ir susiejimu su naujomis eilutėmis.

Matematinės masyvo elementų operacijos

Matematines operacijas su masyvo elementais atlikti yra labai paprasta. Pradėsime parašydami paprastą kodo fragmentą, kad sužinotumėte maksimalų, minimalų ir visų masyvo elementų pridėjimą. Štai kodo fragmentas:

numpy_arr = np.masyvas ([(1, 2, 3, 4, 5)])
spausdinti (numpy_arr.maks. ())
spausdinti (numpy_arr.min. ())
spausdinti (numpy_arr.suma())
spausdinti (numpy_arr.vidurkis ())
spausdinti (np.sqrt (numpy_arr))
spausdinti (np.standartinis (numpy_arr))

Paskutinėse 2 aukščiau pateiktose operacijose mes taip pat apskaičiavome kiekvieno masyvo elemento kvadratinę šaknį ir standartinį nuokrypį. Pirmiau pateiktame fragmente bus pateiktas toks išvestis:

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

„Python“ sąrašų konvertavimas į „NumPy“ masyvus

Net jei naudojate „Python“ sąrašus esamose programose ir nenorite pakeisti viso to kodo, bet vis tiek norite naudoti „NumPy“ masyvus naujajame kode, naudinga žinoti, kad galime lengvai konvertuoti „Python“ sąrašą į „NumPy“ masyvą. Štai pavyzdys:

# Sukurkite 2 naujus aukščio ir svorio sąrašus
aukštis = [2.37, 2.87, 1.52, 1.51, 1.70, 2.05]
svoris = [91.65, 97.52, 68.25, 88.98, 86.18, 88.45]
# Sukurkite 2 numerių matricas iš aukščio ir svorio
np_height = np.masyvas (aukštis)
np_ weight = np.masyvas (svoris)

Tiesiog norėdami patikrinti, dabar galime atsispausdinti vieno iš kintamųjų tipą:

spausdinti (tipas (np_height))

Tai parodys:

Dabar galime atlikti visų elementų matematines operacijas vienu metu. Pažiūrėkime, kaip galime apskaičiuoti žmonių KMI:

# Apskaičiuokite BMI
bmi = np_weight / np_height ** 2
# Atspausdinkite rezultatą
spausdinti (bmi)

Tai parodys visų žmonių KMI, apskaičiuotą elementais:

[16.31682957 11.8394056 29.54033934 39.02460418 29.8200692 21.04699584]

Ar ne taip lengva ir patogu? Mes netgi galime lengvai filtruoti duomenis su sąlyga vietoj indekso kvadratiniuose skliaustuose:

BMI [BMI> 25]

Tai suteiks:

masyvas ([29.54033934, 39.02460418, 29.8200692])

Sukurkite atsitiktines sekas ir pasikartojimus naudodami „NumPy“

Kadangi „NumPy“ yra daugybė funkcijų, leidžiančių sukurti atsitiktinius duomenis ir sutvarkyti juos reikalinga forma, „NumPy“ masyvai daug kartų naudojami kuriant bandymų duomenų rinkinį daugelyje vietų, įskaitant derinimo ir bandymo tikslus. Pvz., Jei norite sukurti masyvą nuo 0 iki n, galime naudoti „arange“ (atkreipkite dėmesį į vieną „r“) kaip pateiktą fragmentą:

spausdinti (np.apelsinas (5))

Tai grąžins išvestį kaip:

[0 1 2 3 4]

Ta pati funkcija gali būti naudojama norint pateikti mažesnę vertę, kad masyvas prasidėtų nuo kitų skaičių nei 0:

spausdinti (np.apelsinas (4, 12))

Tai grąžins išvestį kaip:

[4 5 6 7 8 9 10 11]

Skaičiai neturi būti ištisiniai, jie gali praleisti taisymo veiksmą, pvz .:

spausdinti (np.aranas (4, 14, 2)

Tai grąžins išvestį kaip:

[4 6 8 10 12]

Skaičius taip pat galime gauti mažėjančia tvarka su neigiama praleidimo verte:

spausdinti (np.apelsinas (14, 4, -1))

Tai grąžins išvestį kaip:

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

Naudojant „linspace“ metodą galima finansuoti n skaičių tarp x ir y su vienoda erdve, čia yra to paties kodo fragmentas:

np.„linspace“ (pradžia = 10, sustojimas = 70, skaičius = 10, tipo tipas = int)

Tai grąžins išvestį kaip:

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

Atkreipkite dėmesį, kad išvesties elementai nėra vienodai išdėstyti. „NumPy“ daro viską, kad tai padarytų, tačiau jums nereikia juo pasikliauti, nes jis apvalinamas.

Galiausiai pažiūrėkime, kaip galime sukurti atsitiktinių sekų rinkinį naudodami „NumPy“, kuri yra viena iš dažniausiai naudojamų funkcijų testavimo tikslais. „NumPy“ perduosime skaičių diapazoną, kuris bus naudojamas kaip pradinis ir paskutinis atsitiktinių skaičių taškas:

spausdinti (np.atsitiktinis.randintas (0, 10, dydis = [2,2]))

Pirmiau pateiktas fragmentas sukuria 2–2 matmenų „NumPy“ masyvą, kuriame bus atsitiktiniai skaičiai nuo 0 iki 10. Štai pavyzdžio išvestis:

[[0 4]
[8 3]]

Atkreipkite dėmesį, kad skaičiai yra atsitiktiniai, išvestis gali skirtis net ir tuo pačiu mašina atliekant 2 bandymus.

Išvada

Šioje pamokoje apžvelgėme įvairius šios skaičiavimo bibliotekos aspektus, kuriuos galime naudoti kartu su „Python“, norėdami apskaičiuoti paprastas ir sudėtingas matematines problemas, kurios gali kilti įvairiais naudojimo atvejais. NumPy yra viena iš svarbiausių skaičiavimo bibliotekų, kai reikia duomenų inžinerija ir skaičiaus skaičiavimas, tikrai įgūdžiai, kuriuos turime turėti savo dirže.

Prašome pasidalinti savo atsiliepimais apie pamoką „Twitter“ su @sbmaggarwal ir @LinuxHint.

Kaip parodyti FPS skaitiklį „Linux“ žaidimuose
„Linux“ žaidimai gavo didelį postūmį, kai „Valve“ paskelbė „Linux“ palaikymą „Steam“ klientui ir jų žaidimams 2012 m. Nuo tada daugelis AAA ir indie ž...
Kaip atsisiųsti ir paleisti „Sid Meier Civilization VI“ sistemoje „Linux“
Įvadas į žaidimą „Civilization 6“ yra šiuolaikinė klasikinės koncepcijos, pristatytos „Age of Empires“ žaidimų serijoje, koncepcija. Idėja buvo gana p...
Kaip įdiegti ir žaisti „Doom“ sistemoje „Linux“
Įvadas į Doom „Doom“ serija atsirado 90-aisiais, išleidus originalų „Doom“. Tai buvo tiesioginis hitas, o nuo to laiko žaidimų serija gavo daugybę apd...