Datu zinātne

Python NumPy apmācība

Python NumPy apmācība
Šajā Python NumPy bibliotēkas nodarbībā mēs aplūkosim, kā šī bibliotēka ļauj mums pārvaldīt jaudīgus N dimensiju masīva objektus ar sarežģītām funkcijām, lai manipulētu un darbotos šajos masīvos. Lai šī nodarbība būtu pabeigta, mēs aplūkosim šādas sadaļas:

Kas ir Python NumPy pakete?

Vienkārši sakot, NumPy apzīmē “skaitlisko pitonu”, un tas ir tas, ko tā vēlas izpildīt, lai ļautu sarežģītas skaitliskas darbības, kas tiek veiktas ar N dimensiju masīva objektiem, ļoti viegli un intuitīvi. Tā ir galvenā bibliotēka, ko izmanto zinātniskā skaitļošana, ar funkcijām klāt lineāru algebrisko darbību un statistisko darbību veikšanai.

Viens no fundamentālākajiem (un pievilcīgākajiem) NumPy jēdzieniem ir N dimensiju masīvu objektu izmantošana. Mēs varam uztvert šo masīvu kā tikai rindu un kolonnu kolekcija, tāpat kā MS-Excel fails. Ir iespējams pārveidot Python sarakstu par masīvu NumPy un darbināt funkcijas virs tā.

NumPy masīva attēlojums

Tikai piezīme pirms sākšanas šai nodarbībai tiek izmantota virtuālā vide, kuru izveidojām ar šādu komandu:

pitons -m virtualenv numpy
avota numpy / bin / aktivizēt

Kad virtuālā vide ir aktīva, virtuālajā env mēs varam instalēt numpy bibliotēku, lai varētu izpildīt nākamos veidotos piemērus:

pip instalēt numpy

Izpildot iepriekš minēto komandu, mēs redzam kaut ko līdzīgu:

Ātri pārbaudīsim, vai NumPy pakotne ir instalēta pareizi, izmantojot šo īso koda fragmentu:

importēt numpy kā np
a = np.masīvs ([1,2,3])
druka (a)

Kad esat palaidis iepriekš minēto programmu, jums vajadzētu redzēt šādu izvadi:

Mums var būt arī daudzdimensiju masīvi ar NumPy:

multi_dimension = np.masīvs ([(1, 2, 3), (4, 5, 6)])
drukāt (multi_dimension)

Tādējādi tiks iegūta šāda izeja:

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

Varat arī izmantot Anaconda, lai palaistu šos piemērus, kas ir vieglāk, un to mēs izmantojām iepriekš. Ja vēlaties to instalēt savā datorā, skatiet nodarbību, kurā aprakstīts “Kā instalēt Anaconda Python uz Ubuntu 18.04 LTS ”un dalieties savās atsauksmēs. Tagad virzīsimies uz dažāda veida operācijām, kuras var veikt ar Python NumPy masīviem.

NumPy masīvu izmantošana virs Python sarakstiem

Ir svarīgi lūgt, lai tad, kad Python jau ir izsmalcināta datu struktūra vairāku vienumu glabāšanai, kāpēc mums vispār vajadzīgi NumPy masīvi? NumPy masīvi ir dodot priekšroku salīdzinājumā ar Python sarakstiem šādu iemeslu dēļ:

Ļauj mums pierādīt, ka NumPy masīvi aizņem mazāk atmiņas. To var izdarīt, uzrakstot ļoti vienkāršu Python programmu:

importēt numpy kā np
importa laiks
importa sys
python_list = diapazons (500)
drukāt (sys.getsizeof (1) * len (python_list))
numpy_arr = np.aranžs (500)
drukāt (numpy_arr.izmērs * numpy_arr.preces lielums)

Palaidot iepriekš minēto programmu, mēs iegūsim šādu rezultātu:

14000
4000

Tas parāda, ka ir tāds pats izmēru saraksts vairāk nekā 3 reizes izmērā, salīdzinot ar tāda paša izmēra NumPy masīvu.

NumPy darbību veikšana

Šajā sadaļā ātri apskatīsim operācijas, kuras var veikt ar NumPy masīviem.

Dimensiju atrašana masīvā

Tā kā NumPy masīvu var izmantot jebkurā dimensiju telpā datu glabāšanai, masīva dimensiju varam atrast ar šādu koda fragmentu:

importēt numpy kā np
numpy_arr = np.masīvs ([(1,2,3), (4,5,6)])
drukāt (numpy_arr.ndim)

Mēs redzēsim izvadi kā “2”, jo tas ir divdimensiju masīvs.

Masīva vienumu datatipa atrašana

Mēs varam izmantot NumPy masīvu jebkura veida datu glabāšanai. Tagad noskaidrosim masīva saturošo datu veidu:

other_arr = np.masīvs ([('bijība', 'b', 'kaķis')])
drukāt (other_arr.dtype)
numpy_arr = np.masīvs ([(1,2,3), (4,5,6)])
drukāt (numpy_arr.dtype)

Iepriekš izmantotajā koda fragmentā mēs izmantojām dažāda veida elementus. Šis ir skripta rezultāts:

int64

Tas notiek, jo rakstzīmes tiek interpretētas kā unikoda rakstzīmes, un otrais ir acīmredzams.

Pārveidojiet masīva vienumus

Ja NumPy masīvs sastāv no 2 rindām un 4 kolonnām, to var pārveidot, lai tajā būtu 4 rindas un 2 kolonnas. Uzrakstīsim tam pašam vienkāršu koda fragmentu:

oriģināls = np.masīvs ([('1', 'b', 'c', '4'), ('5', 'f', 'g', '8')])
izdruka (oriģināls)
pārveidots = oriģināls.pārveidot (4, 2)
izdrukāt (pārveidots)

Kad mēs izpildīsim iepriekš minēto koda fragmentu, mēs iegūsim šādu izvadi ar abiem masīviem, kas tiek drukāti uz ekrāna:

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

Ievērojiet, kā NumPy parūpējās par elementu pārvietošanu un saistīšanu ar jaunām rindām.

Matemātiskas operācijas ar masīva vienumiem

Matemātisko darbību veikšana ar masīva vienumiem ir ļoti vienkārša. Mēs sāksim rakstīt vienkāršu koda fragmentu, lai uzzinātu visu masīva vienumu maksimumu, minimumu un pievienošanu. Šis ir koda fragments:

numpy_arr = np.masīvs ([(1, 2, 3, 4, 5)])
drukāt (numpy_arr.max ())
drukāt (numpy_arr.min ())
drukāt (numpy_arr.summa ())
drukāt (numpy_arr.vidējais ()
izdruka (np.sqrt (numpy_arr))
izdruka (np.std (numpy_arr))

Pēdējās divās iepriekš minētajās darbībās mēs aprēķinājām arī katra masīva vienību kvadrātsakni un standartnovirzi. Iepriekš minētais fragments nodrošinās šādu izvadi:

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

Python sarakstu konvertēšana uz NumPy masīviem

Pat ja esat izmantojis Python sarakstus esošajās programmās un nevēlaties mainīt visu šo kodu, bet joprojām vēlaties izmantot NumPy masīvus jaunajā kodā, ir labi zināt, ka mēs varam viegli pārveidot Python sarakstu ar masīvu NumPy. Šeit ir piemērs:

# Izveidojiet 2 jaunus augstuma un svara sarakstus
augstums = [2.37, 2.87, 1.52, 1.51, 1.70, 2.05]
svars = [91.65, 97.52, 68.25, 88.98., 86. lpp.18, 88.45]
# Izveidojiet 2 daudzus masīvus no augstuma un svara
np_height = np.masīvs (augstums)
np_ svars = np.masīvs (svars)

Lai pārbaudītu, mēs tagad varam izdrukāt viena no mainīgajiem lielumu veidu:

drukāt (tips (np_height))

Un tas parādīs:

Tagad mēs varam vienlaicīgi veikt matemātiskas darbības ar visiem vienumiem. Apskatīsim, kā mēs varam aprēķināt cilvēku ĶMI:

# Aprēķiniet BMI
bmi = np_weight / np_height ** 2
# Izdrukājiet rezultātu
drukāt (bmi)

Tas parādīs visu cilvēku ĶMI, kas aprēķināts pēc elementa:

[16.31682957 11.8394056 29.54033934 39.02460418 29.8200692 21.04699584]

Vai tas nav tik vienkārši un ērti? Mēs pat varam filtrēt datus viegli ar nosacījumu indeksa vietā kvadrātiekavās:

bmi [bmi> 25]

Tas dos:

masīvs ([29.54033934, 39.02460418, 29.8200692])

Izmantojot NumPy, izveidojiet nejaušas secības un atkārtojumus

Tā kā NumPy ir pieejamas daudzas funkcijas, lai izveidotu nejaušus datus un sakārtotu tos vajadzīgajā formā, NumPy masīvi daudzkārt tiek izmantoti, lai ģenerētu testa datu kopu daudzās vietās, tostarp atkļūdošanas un testēšanas nolūkos. Piemēram, ja vēlaties izveidot masīvu no 0 līdz n, mēs varam izmantot apelsīnu (ņemiet vērā vienu “r”), piemēram, norādīto fragmentu:

izdruka (np.aranžs (5))

Tas atgriezīs izvadi kā:

[0 1 2 3 4]

To pašu funkciju var izmantot, lai nodrošinātu zemāku vērtību, lai masīvs sāktos no citiem skaitļiem, nevis 0:

izdruka (np.apelsīns (4, 12))

Tas atgriezīs izvadi kā:

[4 5 6 7 8 9 10 11]

Skaitļiem nav jābūt nepārtrauktiem, tie var izlaist labošanas darbību, piemēram:

izdruka (np.aranžs (4, 14, 2))

Tas atgriezīs izvadi kā:

[4 6 8 10 12]

Skaitļus varam iegūt arī dilstošā secībā ar negatīvu izlaišanas vērtību:

izdruka (np.apelsīns (14, 4, -1))

Tas atgriezīs izvadi kā:

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

Izmantojot linspace metodi, ir iespējams finansēt n numurus starp x un y ar vienādu atstarpi, šeit ir koda fragments:

np.linspace (sākums = 10, apstāšanās = 70, skaitlis = 10, tipa = int)

Tas atgriezīs izvadi kā:

masīvs ([10, 16, 23, 30, 36, 43, 50, 56, 63, 70])

Lūdzu, ņemiet vērā, ka izvades vienumi nav izvietoti vienādi. NumPy dara visu iespējamo, lai to izdarītu, taču jums nav jāpaļaujas uz to, jo tas noapaļo.

Visbeidzot, apskatīsim, kā mēs varam ģenerēt nejaušas secības kopu ar NumPy, kas ir viena no testēšanas vajadzībām visbiežāk izmantotajām funkcijām. Mēs nodosim NumPy skaitļu diapazonu, kas tiks izmantots kā nejaušo skaitļu sākotnējais un pēdējais punkts:

izdruka (np.nejaušs.randints (0, 10, izmērs = [2,2]))

Iepriekš minētais fragments izveido masīvu 2 līdz 2 dimensijā NumPy, kurā nejauši skaitļi būs no 0 līdz 10. Šeit ir izejas paraugs:

[[0 4]
[8 3]]

Lūdzu, ņemiet vērā, ka skaitļi ir nejauši, izlaide var atšķirties pat 2 vienā un tajā pašā mašīnā.

Secinājums

Šajā nodarbībā mēs apskatījām dažādus šīs skaitļošanas bibliotēkas aspektus, kurus mēs varam izmantot kopā ar Python, lai aprēķinātu vienkāršas, kā arī sarežģītas matemātiskas problēmas, kas var rasties dažādos lietošanas gadījumos. NumPy ir viena no vissvarīgākajām skaitļošanas bibliotēkām datu inženierija un skaitliskā datuma aprēķināšana, noteikti prasme, kas mums jāpiemīt zem jostas.

Lūdzu, dalieties savās atsauksmēs par nodarbību Twitter vietnē @sbmaggarwal un @LinuxHint.

Tomb Raider for Linux apmācība
Tomb Raider ēna ir divpadsmitais papildinājums Tomb Raider sērijai - darbības piedzīvojumu spēļu franšīzei, kuru izveidoja Eidos Montreal. Spēli gan k...
Kā palielināt FPS Linux?
FPS apzīmē Kadri sekundē. FPS uzdevums ir izmērīt kadru ātrumu video atskaņošanā vai spēļu izrādēs. Vienkāršos vārdos nepārtrauktu pilnekrāna attēlu s...
Populārākās Oculus App Lab spēles
Ja esat Oculus austiņu īpašnieks, jums ir jāsazinās par sānu ielādi. Sānu ielāde ir process, kurā austiņās tiek instalēts saturs, kas nav veikals. Sid...