Documente Academic
Documente Profesional
Documente Cultură
În acest curs vom învăța cum să vizualizăm datele și să le stocăm în noi structuri de
date.
Pe parcurs, vom stăpâni structurile de control, de care vom avea nevoie pentru a
personaliza fluxul scripturilor și algoritmilor.
Acestea sunt lucruri pe care un data scientist le folosește în fiecare zi. Vom încheia
acest capitol cu un studiu de caz, în care vom combina tot ceea ce am învățat.
Vizualizarea datelor
Acest prim capitol este despre vizualizarea datelor, care este o parte foarte importantă a
analizei datelor. În primul rând, ne va folosi pentru a explora seturi de date.
Cu cât înțelegem mai bine datele, cu atât mai bine vom putea extrage informații. Odată
ce am găsit aceste informații, din nou, vom avea nevoie de vizualizare pentru a putea
împărtăși informațiile cu alte persoane.
Ca exemplu, analizăm această diagramă. Este făcută de profesorul suedez Hans
Rosling. Aici vedem o diagramă cu bule, în care fiecare bulă reprezintă o țară. Cu cât
bula este mai mare, cu atât populația țării este mai mare, așa că cele mai mari două
bule de aici sunt China și India.
Există 2 axe. Axa orizontală arată PIB-ul pe cap de locuitor, în dolari US. Axa verticală
arată speranța de viață. Vedem clar că oamenii trăiesc mai mult în țările cu un PIB pe
cap de locuitor mai mare.
Cu toate acestea, există o diferență uriașă în speranța de viață între țările cu același
nivel de venit. Motivul pentru care analizăm această diagramă este că până la sfârșitul
acestui capitol, vom putea construi singuri o astfel de diagramă.
Libraria Matplotlib
Există multe librării de vizualizare în Python, dar cea mai importantă este Matplotlib.
Vom avea nevoie de sublibraria sa Pyplot. Prin convenție, aceasta sublibrarie este
importata ca plt.
În anul 1970, de exemplu, pe Terra trăiau 3,7 miliarde de oameni. Pentru a reprezenta
aceste date ca diagramă cu linii, apelăm plt.plot(lista1, lista2) și folosim cele două liste
ale noastre ca argumente.
Primul argument corespunde axei orizontale, iar al doilea axei verticale.
Vom mai vorbi despre asta. Sa ținem minte acest lucru: funcția .plot() îi spune lui Python
ce să traseze și cum să traseze. Functia .show() afișează de fapt diagrama.
Când privim diagrama, vedem că anii sunt într-adevăr afișați pe axa orizontală, iar
populația pe axa verticală.
Există patru puncte de date, iar Python trasează o linie între ele. În 1950, populația lumii
era de aproximativ 2,5 miliarde. În 2010, era în jur de 7 miliarde. Deci populația lumii
aproape s-a triplat în șaizeci de ani. Dacă populația continuă să crească astfel, va
deveni oare Pamantul suprapopulat?
Diagrama de dispersie
Sa analizam un alt tip de diagramă: diagrama de dispersie (scatter plot). Pentru a crea
o astfel de diagrama, putem începe de la codul de mai sus. De data aceasta, totuși,
modificăm funcția diagramei la .scatter().
Diagrama de dispersie trasează pur și simplu toate punctele de date individuale; Python
nu conectează punctele cu o linie. Pentru multe aplicații, diagrama de dispersie este
adesea o alegere mai bună decât diagrama de linii.
Histograma este foarte utilă pentru analiza datelor. Ne poate ajuta să ne facem o idee
despre distribuția valorilor.
Pentru a construi o histogramă pentru aceste valori, putem să împărțim axa în secțiuni
egale, numite bare (bins, buckets). Să presupunem că alegem 3 bare, fiecare având o
lățime de 2.
Cele mai multe valori sunt la mijloc, dar sunt mai multe valori sub 2 decât sunt peste 4.
Desigur, putem folosi Matplotlib pentru a construi astfel de histograme.
Există o multitudine de argumente pe care le putem specifica, dar primele două de aici
sunt cele mai importante. x ar trebui să fie o listă de valori pentru care dorim să
construim o histogramă. Apelam functia help() pentru metoda .hist().
Putem folosi al doilea argument, bins, pentru a-i spune lui Python în câte bare ar trebui
să fie împărțite datele. Pe baza acestui număr, hist va găsi automat limitele adecvate
pentru toate barele și va calcula cât de multe valori sunt în fiecare.
Apoi, pur și simplu apelăm funcția .hist() și trecem această listă ca input, astfel încât să
se potrivească cu argumentul x. Specificam, de asemenea, argumentul bins să fie egal
cu 3, astfel încât valorile să fie împărțite în trei bare.
Dacă apelăm funcția .show(), obținem o histogramă. Histogramele sunt cu adevărat
utile pentru a oferi o imagine de ansamblu.
Acestea sunt cifrele anului 2010. Cum oare se vor schimba în 2050?
Dacă aruncăm o privire, distribuția este mai plată, iar generația baby boom a îmbătrânit.
Acum că am aflat cum arată o histogramă și care este rolul ei, să ne apucăm să
personalizăm diagramele.
Crearea unei diagrame este un pas. A face o diagramă corectă, care transmite un
mesaj foarte clar -- aceasta este adevărata provocare.
Vizualizarea datelor
Pentru fiecare tip de vizualizare, avem multe opțiuni. În primul rând, există diferite tipuri
de diagrame. Și pentru fiecare diagramă, putem face un număr mare de customizări.
Deoarece există atât de multe customizări posibile, cel mai bun mod de a învăța acest
lucru este prin exemple.
Să începem cu codul din acest script pentru a construi o diagramă simplă. Este similar
cu graficul pe linii pe care l-am creat anterior, dar de data aceasta listele de ani și
populație conțin mai multe date, inclusiv proiecții până în anul 2100, prognozate de
Națiunile Unite.
Dacă rulăm acest script, obținem deja o diagramă destul de frumoasă care ne arată că
explozia demografică care are loc va fi încetinită până la sfârșitul secolului.
Dar unele lucruri pot fi îmbunătățite. În primul rând, ar trebui să fie mai clar ce date
afișăm, în special pentru persoanele care văd graficul pentru prima dată. Și în al doilea
rând, diagrama chiar trebuie să atragă atenția asupra exploziei populației.
Primul lucru pe care trebuie să-l facem întotdeauna este să etichetam axele. Să facem
asta adăugând funcțiile .xlabel() și .ylabel().
Ca input-uri, trecem string-uri care ar trebui să fie plasate lângă axe. Aceste funcții
trebuiesc apelate înainte de a apela funcția .show(), altfel customizările nu vor fi afișate.
Dacă rulăm din nou scriptul, de data aceasta axele sunt denumite.
Vom adăuga, de asemenea, un titlu diagramei noastre, cu funcția .title(). Trecem titlul
propriu-zis - 'World Population Projections' ca argument.
Și avem titlu! Așadar, folosind .xlabel(), .ylabel() și .title(), putem oferi cititorului mai
multe informații despre datele din diagramă. Pentru a pune creșterea populației în
perspectivă, axa y ar trebui să înceapă de la zero.
Putem face acest lucru cu funcția .yticks(). Primul input este o listă, în acest exemplu cu
numerele de la zero până la zece, cu intervale de 2.
Dacă rulăm, diagrama se va schimba: curba se deplasează în sus. Acum este clar că în
1950, erau deja aproximativ 2,5 miliarde de oameni pe această planetă.
În sfârșit, să adăugăm câteva date istorice pentru a accentua explozia demografică din
ultimii 60 de ani. Pe wikipedia, am găsit datele populației mondiale pentru anii 1800,
1850 și 1900. Le putem scrie sub formă de listă și le putem atașa listelor pop și year cu
semnul plus.
Dacă rulam scriptul, trei puncte de date sunt adăugate graficului, oferind o imagine mai
completă.
Așa transformam un grafic de linii mediocru într-unul care are o poveste clară de spus.