Home » Articole » Articole » Calculatoare » Programare » Python » Matrice în Python – Obținerea dimensiunii matricei – Accesarea elementelor individuale

Matrice în Python – Obținerea dimensiunii matricei – Accesarea elementelor individuale

postat în: Python 0

Acum că știm mai multe opțiuni pentru cum să creăm matrice n-dimensionale, ce putem face cu ele? Multe și diverse lucruri.

Obținerea dimensiunii matricei

Pentru a afla cât de lungă este o matrice (adică, câte elemente) folosim funcția len(), cam așa cum am făcut pentru șiruri. Referiți-vă la Figura 8.3 și luați în considerare acest cod:

   num_players = len(roster)
sam_len = len(roster[2])
big_number = len(photo_likes)
print(„There are {} players on the USWNT.”.format(num_players))
print(„Sam Mewis has {} characters in her name.”.format(sam_len))
print(big_number)
print(„We’ve had {} elections.”.format(len(prez_elections)))

 

   There are 24 players on the USWNT.
Sam Mewis has 9 characters in her name.
40000000000
We’ve had 59 elections.

Acesta este un exemplu de supraîncărcare a numelor de funcții Python, ceea ce înseamnă doar că același nume este folosit pentru două funcții diferite. Când treceți un șir la len(), obțineți numărul de caractere; dar când treceți o matrice la len(), obțineți numărul de elemente pe care le are. (Matricea de liste avea mai mult de 24 de litere, observați – dar len() a returnat 24, deoarece acesta era numărul de șiruri.)

Accesarea elementelor individuale

Extragerea unui element

Pentru a obține valoarea unui anumit element dintr-o matrice, folosim „notația boxie” cu numărul de index:

   print(prez_elections[0])
third_year = usa_years[2] print(„{} was the 3rd year of U.S.A.”.format(third_year))
print(„The highest-numbered player is {}”.format(
roster[len(roster)-1]))

▌ 1788.0
▌ 1778 was the 3rd year of U.S.A.
▌ The highest-numbered player is Christen Press.

Amintiți-vă, indicii încep de la zero (nu unu), așa că de aceea prima linie are un 0 în ea.

Acum examinează ultima linie, care este cam complicată. Ori de câte ori aveți boxie, trebuie mai întâi să evaluați codul din interiorul lor pentru a obține un număr. Acest număr este atunci numărul de index pe care Python îl va căuta în matrice. În ultima linie de mai sus, codul din interiorul boxie este:

   …len(roster)-1…

Defalcând, știm că len(roster) este 24, ceea ce înseamnă că len(roster)-1 trebuie să fie 23, deci [len(roster)-1] este Christen Press. Este un model comun pentru a obține ultimul element al unui tablou.*

Pentru a vă testa înțelegerea, aflați ce se va imprima pentru următorul cod:

   q = 2
   r = np.array([45,17,39,99])
   s = 1
   print(r[q-s+1]+3)

Răspunsul este la sfârșitul capitolului.

Modificarea unui element

Pentru a modifica un element al unui tablou, trebuie doar să utilizați semnul egal, așa cum facem pentru variabile:

   stooges = np.array([‘Larry’,’Beavis’,’Moe’])
print(stooges)
stooges[1] = ‘Curly’
print(stooges)

▌ [‘Larry’ ‘Beavis’ ‘Moe’] ▌ [‘Larry’ ‘Curly’ ‘Moe’]

La urma urmei, un element individual precum stooges[1] este în sine o variabilă aproape ca oricare alta.

Fragmente

Uneori, în loc să obținem doar un element dintr-o matrice, vrem să obținem o bucată întreagă din ele odată. Ne interesează primele zece elemente, să zicem, sau ultimele douăzeci, sau cele paisprezece elemente care încep cu indicele 100. Pentru a face acest gen de lucruri, folosim un slice.

Să presupunem că avem o listă de state în ordine alfabetică și am vrut să scoatem o bucată de intrări consecutive din mijloc – să zicem, de la Arizona la Colorado. Luați în considerare acest cod:

   states = np.array([„AL”,”AK”,”AZ”,”AR”,”CA”,”CO”,”CT”,
„DE”,”FL”,”GA”,”HI”])
print(states[2:6])

▌ [‘AZ’ ‘AR’ ‘CA’ ‘CO’]

„2:6” din boxie îi spune lui Python că vrem un fragment cu elementele de la 2 la 5 (nu la 6, așa cum v-ați aștepta). Acesta este același comportament pe care l-am văzut pentru np.arange() unde intervalul merge până la ultima valoare, dar fără a include. Doar obișnuiește-te cu asta.

De asemenea, putem omite numărul de dinainte de două puncte, care îi spune lui Python să înceapă de la începutul matricei:

   print(states[:5])

▌ [‘AL’ ‘AK’ ‘AZ’ ‘AR’ ‘CA’]

sau omiteți numărul de după două puncte, care spune să mergeți până la sfârșit:

   print(states[8:])

▌ [‘FL’ ‘GA’ ‘HI’]

Putem include chiar și un al doilea simbol două puncte, după care un al treilea număr specifică dimensiunea pasului sau lungimea pasului. Ia în considerare:

   print(states[2:9:3])

▌ [‘AZ’ ‘CO’ ‘FL’]

Aceasta îi spune lui Python: „începeți fragmentul de la elementul #2 și mergeți până la (dar fără să includă) elementul #9, din trei în trei”. Dacă numărați statele manual, veți vedea că Arizona este la indicele 2, Colorado este la indicele 5 și Florida este la indicele 8. Prin urmare, acestea sunt cele trei elemente incluse în fragment.

Acest lucru poate părea ezoteric, dar apare surprinzător de des.

Sursa: Stephen Davies, The Crystal Ball – Instruction Manual, Vol. 1: Introduction to Data Science, v. 1.1. Copyright © 2021 Stephen Davies. Licența CC BY-SA 4.0. Traducere și adaptare: Nicolae Sfetcu. © 2021 MultiMedia Publishing, Introducere în Știința Datelor, Volumul 1

Ghid WordPress pentru începători
Ghid WordPress pentru începători

Descoperă arta gestionării site-urilor web cu WordPress!

Nu a fost votat Interval de prețuri: 13.84 lei până la 25.36 lei Citește mai mult
Ghidul Google SEO
Ghidul Google SEO

O resursă esențială pentru orice proprietar de site, specialist în marketing digital sau antreprenor online.

Nu a fost votat 0.00 lei Selectează opțiunile Acest produs are mai multe variații. Opțiunile pot fi alese în pagina produsului.
Introducere în Business Intelligence
Introducere în Business Intelligence

O resursă esențială pentru toți cei interesați de analiza datelor și de optimizarea proceselor de afaceri.

Nu a fost votat Interval de prețuri: 13.84 lei până la 24.85 lei Selectează opțiunile Acest produs are mai multe variații. Opțiunile pot fi alese în pagina produsului.


Descoperă mai multe la MultiMedia

Abonează-te ca să primești ultimele articole prin email.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *