Python for DataScience

Pasionat de cursuri online si vrand de ceva vreme sa invat Python, am luat un curs care mi s-a parut la indemana de pe edx: Introduction to Python for Data Science

Exercitiile le faci printr-un simulator al celor de la DataCamp.


Lectia nr. 1: Python Basics

Lectii din primele exercitii (recomand utilizarea DataCamp):

  • Fisierele de Python sunt de gasit usor dupa extensia .py

 

Limbaj:

  • # – comentariile: #acesta ar fi un comentariu in Python
  • ** – ridicarea la exponent. De exemplu 4**2 = 16.
  • % – modulo – adica restul impartirii. 18%7 va da 4. (Practic da catul 2, rest 4).
  • + – poate aduna niste variabile (numere) sau concatena siruri de caractere (‘a’ + ‘b’ = ‘ab’)
  • ; – da posibilitatea sa scrii mai multe comenzi pe aceeasi linie
  • print() – afiseaza
    • a = 3; print(a) va afisa 3

 

Variabile:

  • specifice, case-sensitive(adica Abc va fi diferita decat abc)
  • type(variabila) => iti va da tipul variabilei
    • float – nr real
    • integer – intreg
    • boolean – poate fi true/false
    • strings – sir de caractere
  • str(), int(), float(), bool() – trece o variabila in str/int/float/bool, dupa caz

 

Lectia nr. 2: Data Structures

Python Lists:

Cand faci lucru pe date, o sa ai foarte multe. Asa ca in loc sa folosesti variabile sa stochezi fiecare data intr-o variabila, se recomanda folosirea de liste:

Definire: [a, b, c] – ex: [1.74, 5.64, 6.23, 0.23] 

  • in lista pot fi variabile de tipuri diferite
  • Liste: [1, 3, 4], [1, “a”, “asda” +”asad”, True], sau [[1, 3, 4], [“a, “f”, 5]]

 

Subsetting Lists:

  • indexul fiecarei variabile din liste incepe de la 0
    • a = [1 ,2 ,3] va returna a[0] = 1, a[1] = [2], a[2] = [3]
  • List slicing – cu ‘:’
    • [start : end]  => start e inclus in rezultate, end exclus
    • a[1:2] va returna [2]
    • a[:1] va returna [1]

 

Operatii cu liste:

  • adaugare la lista: fam_ext: fam + [“me”, 1.79], unde:
    • fam_ext: lista noua
    • fam: lista curenta
    • [“me”, 1.79]: sublista pe care o adaugam la lista curenta
  • stergere: del(fam[2])

Lectia nr. 3: Functions and Packages

Functiile

  • o functie: este o bucata de cod reutilizabil. Practic, e ca un playlist de muzica, unde playlistul este numele functiei (si mai are niste date), iar melodiile sunt operatiile pe care calculatorul le va efectua, daca acea functie este apelata
  • sunt unele functii predefinite
    • max() – cauta maximul dintr-o lista
    • round(nr, zecimale) – aproximeaza nr, tinand cont de zecimale
      • round(1.68) = 2
      • round(1.68, 1) = 1.7
    • len() – returneaza lungimea unui sir
  • cand ai dubii sau vrei sa afli mai multe, apeleaza cu incredere help-ul. Pentru mai multe detalii despre o functie: help(functie) sau ?functie
    • ex: help(max), sau ?max

 

Metode

  • un fel de functii care se pot aplica unor liste; sunt metode dedicate tipurilor de liste (daca sunt de numere/caractere etc)
  • se apeleaza prin ‘.’ (punct)
  • Daca fam = [1,2,3,4]
    • fam.index(3) => ar da 2, care este pozitia elementului cu valoarea 3
    • fam.count() => ar da 4, caci atatea elemente sunt in lista
  • sistem = ‘liz’
    • sister.capitalize() => va returna ‘Liz’
  • append() => adauga un element la o lista

 

Packages

  • un pachet = un colectie de scripturi
  • un script = un modul care cuprinde functii, metode sau declaratii de tipuri de variabile
  • Sunt packages(voi folosi in engleza) deja definite:
    • Numpy
    • Matplotlib
    • Scikit-learn
  • Ele trebuie instalate
  • Pot fi si importate: comanda import
    • import numpy

 

Lectia nr. 4: Numpy

Numpy

  • NumPy (Numeric Python) – e o alternativa la liste => ofera Numpy Array
  • avantaj: poti face o operatie pe mai multe liste odata
  • ca sa mearga, trebuie instalat
  • Exemplu de folosit
    • import numpy as np
    • np_height = np.array(height) – unde height e deja un vector definit inainte
    • np_weight = np.array(weight)
    • bmi = np_weight  / np_height **2  
    • si imi va da un alt array, cu indicele bmi pentru fiecare element din lista
  • Numpy subsetting
    • daca bmi este un vector cu numere intre 10 si 27, si tu apelezi bmi >23 => va da un vector cu elemente boolean, unde doar cele care sunt mai mari ca 23 vor avea True
    • daca apelezi bmi[bmi> 23]  va genera un vector cu elementele > 23

Observatii: Numpy cere liste cu elemente de acelasi tip.

 

2D Numpy Array

  • daca iei un numpy array si vezi tipul sau, iti va returna ndarray (N-dimensional array)
  • asta inseamna ca poti face vectori dimensionali
  • 2D array => sunt matricele
  • Poti declara ca: np_2d = np.array(a, b) , unde a si b sunt liste
  • Utile
    • np_2d.shape – metoda care iti spune cate linii si coloane ai
    • accesezi un element sub forma np_2d[2][0] => si-ti va returna primul element, linia 2
      • aceeasi valoare e si cu np_2d[2, 0]
    • Daca vreau sa selectez o intreaga coloana
      import numpy as np
      np_x = np.array(x)
      np_x[:,0] -> va selecta prima coloana, toate liniile

 

Numpy: Basic Statistics

  • exista functii predefinite care te ajuta pentru date statistice
  • Exemple
    • np.mean(np_city[:, 0]) -> asta ar da de exemplu media persoanelor din oras – daca prima coloana din np_city este inaltimea locuitorilor
    • np.median(np_city[:, 0]) – calculeaza mediana
    • std() – deviatia standard

 

Alte lucruri utile

  • poti folosi aliasuri (ca sa folosesti nume mai scurte)
    • import numpy as np => packetul importat va purta numele ‘np’ si asa il vei apela

 

Documentatie oficiala:

 

Comments

comments