Home » Articole » Articole » Calculatoare » Programare » Python » Matrice asociative în Python: Accesarea elementelor individuale

Matrice asociative în Python: Accesarea elementelor individuale

postat în: Python 0

Acum putem crea Serii; hai să vedem ce putem face cu ele.

Accesarea elementelor individuale

Putem folosi funcția len(), pentru care am învățat deja două utilizări, într-un al treilea mod: pentru a stabili numărul de perechi cheie/valoare dintr-o serie. Folosind exemplul din Figura 11.2 (p. 105):

print(len(alter_egos)) 

▐ 4

Accesarea valorii pentru o anumită cheie folosește exact aceeași sintaxă pe care a folosit-o matricele NumPy (boxies), cu excepția cheii în locul indexului numeric:

superhero = alter_egos['Peter'] 
print("Pssst...Peter is really {}.".format(superhero)) 

▐ Pssst...Peter is really Spidey.

Acesta este motivul pentru care este important ca cheile unui tablou asociativ să fie unice. Dacă introducem “alter_egos[‘Peter’],” trebuie să obținem un răspuns bine definit, nu un set ambiguu de alternative. (1) Valorile, pe de altă parte, pot foarte bine să nu fie unice.

Pentru a suprascrie valoarea pentru o cheie cu o valoare nouă, tratați-o ca pe o variabilă și mergeți pe:

alter_egos['Bruce'] = 'Batman' 
print(alter_egos) 

▐ Bruce Batman 

▐ Peter Spidey 

▐ Tony Iron Man 

▐ Thor Thor 

▐ dtype: object

Aceeași sintaxă funcționează și pentru adăugarea unei perechi cheie/valoare complet nouă:

alter_egos['Diana'] = 'Wonder Woman' 
print(alter_egos) 

▐ Bruce Batman 

▐ Peter Spidey 

▐ Tony Iron Man 

▐ Thor Thor 

▐ Diana Wonder Woman 

▐ dtype: object

Este la fel ca în cazul variabilelor obișnuite, dacă te gândești la asta. A spune „x=5” suprascrie valoarea curentă a lui x dacă există deja un x, în caz contrar se creează o nouă variabilă x cu acea valoare.

În cele din urmă, pentru a elimina definitiv o pereche cheie/valoare, utilizați operatorul del:

del alter_egos['Tony'] 
print(alter_egos) 

▐ Bruce Batman 

▐ Peter Spidey 

▐ Thor Thor 

▐ Diana Wonder Woman 

▐ dtype: object

Adio, Iron Man.

Nu vă supărați când vă spun că toate operațiunile de mai sus funcționează pe Serie, ceea ce este foarte diferit de unele dintre stilul „returnează o copie modificată” pe care l-am văzut recent. Prin urmare, toate aceste încercări sunt greșite:

alter_egos = del alter_egos['Tony'] <--- GREȘIT! 
alter_egos = alter_egos['Bruce'] = 'Batman' <--- GREȘIT! 
alter_egos = alter_egos['Diana'] = 'Wonder Woman' <--- GREȘIT!

Nu „schimbi o valoare și obții o serie nouă”; doar „schimbi”.

Accesarea după poziție

Un lucru puțin ciudat pe care îl puteți face cu o serie Pandas este să ignorați cheia (indexul) cu totul și, în schimb, să utilizați numărul perechii cheie/valoare pentru a specifica ce valoare doriți. Acest lucru mă face nesigur, deoarece într-adevăr nu există nicio „ordine” semnificativă pentru perechile cheie/valoare ale unui tablou asociativ. Cu toate acestea, în modul All Things To All People™, Pandas vă permite să faceți acest lucru.

Accesarea unei valori după poziție

Puteți cere valoarea (să spunem) „al doilea” super-erou. Pentru a face acest lucru, utilizați sintaxa cu denumirea bizară .iloc:

a_hero = alter_egos.iloc[1] 
print(a_hero) 

▐ Spidey

Acest lucru este uneori util, așa că îl menționez pentru a fi complet. Numerele .iloc încep cu 0 (nu 1), așa cum este adevărat în Python.

Accesarea unei chei după poziție

În mod similar, puteți obține cheia (spre deosebire de valoare) perechii cheie/valoare într-o anumită poziție. Pentru a cere cheia „al doilea” super-erou, utilizați sintaxa .index:

a_secret_hero = alter_egos.index[1] 
print(a_secret_hero) 

▐ Peter

(1) Pandas, care încearcă să fie All Things To All People™ (de toate pentru toți), vă va permite de fapt să aveți valori duplicate ale indexului într-o Serie. Ce face dacă ceri „valoarea” lui Peter, atunci, dacă există mai multe? Îți dă înapoi o altă Serie de diferiți supereroi Peter. Aceasta este o durere majoră, pentru că acum, atunci când căutați o valoare în Serie, nu știți dacă veți primi înapoi un singur articol sau o altă Serie, ceea ce înseamnă că trebuie să verificați pentru a vedea care este și apoi scrieți cod diferit pentru a gestiona cele două cazuri… Doar stai departe, departe de asta. Faceți toate cheile dvs. unice.

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. © 2024 MultiMedia Publishing, Introducere în Știința Datelor, Volumul 1

Tehnologia Blockchain - Bitcoin
Tehnologia Blockchain – Bitcoin

Internetul a schimbat complet lumea, cultura şi obiceiurile oamenilor. După o primă fază caracterizată prin transferul liber al informaţiilor, au apărut preocupările pentru siguranţa comunicaţiilor online şi confidenţialitatea utilizatorilor. Tehnologia blockchain asigură ambele aceste deziderate. Relativ nouă, ea are şansa să producă … Citeşte mai mult

Nu a fost votat 23.85 lei57.31 lei Selectează opțiunile Acest produs are mai multe variații. Opțiunile pot fi alese în pagina produsului.
Analitica rețelelor sociale
Analitica rețelelor sociale

Analitica rețelelor sociale este un domeniu nou și emergent, pregătit pentru a permite companiilor să își îmbunătățească inițiativele de gestionare a performanței în diferite funcții de afaceri. Indiferent dacă este vorba de măsurarea eficienței campaniilor promoționale, colectarea de informații despre … Citeşte mai mult

Nu a fost votat 19.07 lei Selectează opțiunile Acest produs are mai multe variații. Opțiunile pot fi alese în pagina produsului.
Rețele de comunicații 5G
Rețele de comunicații 5G

Datorită impactului său așteptat în economie și societate, a cincea generație de telecomunicații mobile (5G) este una dintre cele mai importante inovații ale timpului nostru. Așteptările cresc cu capacitățile de bandă largă ale 5G, accesibile tuturor și peste tot, la … Citeşte mai mult

Nu a fost votat 14.29 lei32.88 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 *