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

Războiul electronic și inteligența artificială
Războiul electronic și inteligența artificială

Această carte este ideală pentru profesioniștii în afaceri, strategii militari, și publicul academic.

Nu a fost votat 9.53 lei24.85 lei Selectează opțiunile Acest produs are mai multe variații. Opțiunile pot fi alese în pagina produsului.
Statistica pentru afaceri
Statistica pentru afaceri

Instrumentul esențial pentru decizii inteligente în mediul de afaceri!

Nu a fost votat 19.11 lei40.94 lei Selectează opțiunile Acest produs are mai multe variații. Opțiunile pot fi alese în pagina produsului.
Introducere în inteligența artificială
Introducere în inteligența artificială

Pășește în era digitală pregătit să înțelegi și să aplici conceptele care schimbă lumea!

Nu a fost votat 14.32 lei25.09 lei Selectează opțiunile Acest produs are mai multe variații. Opțiunile pot fi alese în pagina produsului.

Lasă un răspuns

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