JSON (pronunțat ca numele „Jason” în engleză) este un format de fișier text simplu, care poate fi citit de om, care este foarte frecvent utilizat pentru stocarea și schimbul de informații. (Acesta înseamnă „JavaScript Object Notation”, dar nu vă lăsați păcăliți: nu prea are de-a face cu limbajul JavaScript decât din punct de vedere istoric. Orice limbaj, inclusiv Python, poate citi/scrie date JSON.)
ndarrays NumPy și Series Pandas sunt implementările preferate ale matricelor și, respectiv, ale matricelor asociative în ecosistemul Python Data Science. După cum știți, o matrice NumPy deține o secvență numerotată de elemente (indexate începând de la 0), iar o serie deține un set de perechi cheie-valoare.
Pentru orice lucru serios cu date, doriți să utilizați aceste instrumente, deoarece sunt extrem de rapide, super-eficiente, bogate în funcții și optimizate pentru sarcină.
După cum se dovedește, Python-ul simplu a fost dezbrăcat, sărac în caracteristici, dar sunt și versiuni ușor de tastat ale acestor structuri de date, care sunt integrate în JSON și, de asemenea, important de avut în vedere. Se numesc liste și dicționare.
Liste
Dacă, în loc să scrieți asta:
crew = np.array(["Ed","Kelly","Alara","Bortus","John", "Claire"])
pur si simplu ați scris asta:
crew = ["Ed","Kelly","Alara","Bortus","John","Claire"]
atunci obțineți o listă simplă ol în loc de o matrice NumPy. Nu este nici pe departe la fel de rapid, nici nu poate stoca aproape la fel de multe articole și nu puteți face operațiuni de difuzare și altele cu el, dar face treaba de bază. De exemplu:
print("Captain {} initiating roll call for {} officers:".format( crew[0], len(crew))) for member in crew[1:len(crew)]: print("{} reporting for duty, sir!".format(member)) print(crew[0])
▌Captain Ed initiating roll call for 6 officers: ▌Kelly reporting for duty, sir! ▌Alara reporting for duty, sir! ▌Bortus reporting for duty, sir! ▌John reporting for duty, sir! ▌Claire reporting for duty, sir!
Lucrul cu liste mici de articole este foarte, foarte asemănător cu lucrul cu matrice NumPy, așa că sunt sigur că veți alege acest lucru imediat.
De altfel, am folosit deja liste de mai multe ori, fără să știm. De exemplu, chiar această linie de cod:
good = np.array(["Janet","Chidi","Eleanor","Michael","Tahani"])
este de fapt pusă mai întâi să creeze o listă și apoi să transmită acea listă ca argument către np.array(). Și acest cod:
alter_egos = pd.Series(['Hulk','Spidey','Iron Man','Thor'], index=['Bruce','Peter','Tony','Thor'])
creează două liste separate, una pentru date și una pentru index și le transmite la pd.Series() pentru a construi o Serie din ele. Listele sunt super-ușoare și super-obișnuite.
Dicționare
După cum se menționează în secțiunea 6.3, dicționarele sunt ca Seriile Pandas reduse, în același mod în care listele sunt ca și matricele NumPy reduse. Dicționarele conțin perechi cheie-valoare, accesate în același fel (cu sintaxa boxie []). Creați un dicționar folosind sintaxa de la 6.3
alter_egos = { 'Bruce':'Batman', 'Dick':'Robin', 'Diana':'Wonder Woman', 'Clark':'Superman' }
La fel ca în cazul Seriilor, puteți prelua valoarea pentru o cheie, puteți modifica valoarea unei chei, puteți adăuga o nouă pereche cheie-valoare și așa mai departe:
caped_crusaders = [ alter_egos['Bruce'], alter_egos['Dick'] ] alter_egos['Clark'] = 'Man of Steel' alter_egos['Victor'] = 'Cyborg' print("There are {} heroes, {} of whom are the caped crusaders.". format(len(alter_egos), len(caped_crusaders))) print("The dynamic duo is: {} and {}!".format( caped_crusaders[0], caped_crusaders[1])) for key, value in alter_egos.items(): print("Psssst, {} is really {}...".format(key,value))
▌There are now 5 heroes, 2 of which are the caped crusaders. ▌The dynamic duo is: Batman and Robin! ▌Psssst, Bruce is really Batman... ▌Psssst, Dick is really Robin... ▌Psssst, Diana is really Wonder Woman... ▌Psssst, Clark is really Man of Steel... ▌Psssst, Victor is really Cyborg...
Sursa: Stephen Davies, The Crystal Ball – Instruction Manual, Vol. 2: Introduction to Data Science, v. 1.1. Copyright © 2020 Stephen Davies. Licența CC BY-SA 4.0. Traducere și adaptare: Nicolae Sfetcu. © 2021 MultiMedia Publishing, Introducere în Știința Datelor, Volumul 2
Lasă un răspuns