Sunteți pe pagina 1din 61

Data Science in Python

Transformăm datele în informație

Accent pe colectarea, analiza și generarea rezultatelor

Moduri diferite de explorare și vizualizare a datelor


Materiale

platforma Moodle
http://curs.pub.ro/2021
InformaticăAplicată2
Structura cursului

Saptamanile 1...6 curs si laborator Python/ Librării

Saptamana 7 – Verificare laborator

Saptamanile 8...13 curs si laborator Aplicații

Saptamana 14 – Verificare laborator

Ultimul curs – Colocviu final


Ce se asteapta de la voi


Prezenta obligatorie la laborator


NU se fac recuperari la laborator.

Prezenta obligatorie la:

Verificarea practica laborator Python / Librării

Verificarea practica laborator Aplicații


Calculul Notei Finale

30% din nota Verificare practica laborator Python/Librarii

30% din nota Verificare practica laborator Aplicații

20% din nota teste/teme

20% din nota Colocviu final

Cerinte minimale pentru promovare:


-acumularea min 50% din fiecare verificare practică de laborator
-promovarea cu punctajul acumulat 5.00 (nu se rotunjeste 4.50)
Curs 1

Data Science
Limbajul PYTHON - Avantaje
Mediul Ipython
Librării
Scopul cursului
Încrezător și competent în folosirea
datelor

Wikipedia – Data Science este un concept


care unifică diverse metode din matematică,
statistică, analiza datelor și informatică cu
scopul de a înțelege și analiza probleme și
fenomene din lumea reală pe baza seturilor
de date.
Date

Seturi mari de date create în timp real


(multimedia,text, senzori etc)

Datele descriu o stare curentă sau un proces

Datele pot evidenția anomalii (fraudă)

Datele pot evidenția comportamente (activitatea pe Netflix)

Datele pot prezice evenimente viitoare


Necesitatea Data Science

Manipulăm și analizăm seturi mari de date

Explorăm seturi de date - decizii și predicții

Creăm modele in diverse domenii

“Construim inteligență”
Data Science Workflow - fluxul de lucru

I. Colectam și Stocăm (Data Collection & Storage)

II. Procesăm - “curățarea datelor” (Data Preparation)

III.Explorăm șiVizualizăm (Exploration&Visualization)

IV. Modelare și Predicții (Experimentation&Prediction)


Domenii de aplicații în Data Science
1. Machine Learning (ML)
Exemplu: fraudă pe credit card
• problema bine definita
• un set de date
• un nou set de date sa testam algoritmul ales


2. Internet of Things (IoT)
Exemplu: ceas inteligent

date generat de senzori → învățare automată
3. Deep Learning (DL)
Exemplu: identific dacă o imagine conține un om
• problema bine definita
• mai multe straturi de mini-algoritmi - „neuroni”
• multe, multe seturi de date + învață relații între date
• clasificarea imaginilor sau înțelegerea limbajului
Aplicații Data Science

Sectorul Medical
Stock Market
Meteorologie
Transport Aerian
Logistică
Vânzări
Publicitate
…... etc.
Angajare în Data Science

Cunoștințe și Aptitudini: Matematică Tehnologie Business


Poziții de Angajare în Data Science
Data Engineer, Data Analyst, Data Scientist, ML Scientist,
DatabaseAdministrator, Business Analyst,
|Data& Analytics Manager ...

Data Engineer – I (Data Collection & Storage)


arhitecții informației – fluxul de date
construiesc pipelines si soluții de stocare
mențin accesul la date

SQL – stocare si organizarea datelor


Java/Scala/Python – procesarea datelor
Shell – automatizare si rulare de task-uri
Cloud computing – Google cloud, Azure, AWS
Poziții de Angajare în Data Science

Data Analyst – II & III


curățarea datele
crează rapoarte și dashboard
optimizări – diferiti algoritmi fără a modifica datele

SQL – queries – găsirea și agregarea datelor


Python/R - curățarea datelor
Spreadsheets - Excel/Google – analize simple
BI Tools – Tableau, PowerBT, Looker - vizualizări
Poziții de Angajare în Data Science

Data Scientist – II & III & IV


aplică metode statistice
rulează experimente, formulează ipoteze
construieste modele tradiționale de predicție

SQL – queries – găsirea și agregarea datelor


Python & Librării / R & Librării
Poziții de Angajare în Data Science

ML Scientist – II & III & IV


predicții și extrapolări
clasificări
Deep Learning – clasificarea imaginilor / înțelegerea limbajului

Python & Librării / R & Librării


ML Librării- TensorFlow/ Spark
De ce Python ?
De ce Python ?
De ce Python ?

Python foarte asemanator cu orice limbaj de vorbire

Exemplu:

grup = ['Ion', 'Elena', 'Angela', 'Ilie']


for prieten in grup:
print("Buna" + prieten)

In Python usor de inteles concepte fundamentale ale


programarii : structuri de date si algoritmi
De ce Python ?
Python
for i in range(10):
print("Hello.World!")

Bash
for in in {1..10}; do
echo Hello, World!
done

PowerShell
for ( $i=1; $i –le 10; $i++) {
Write-Host "Hello, World!"
}
De ce PYTHON pentru Data Science ?
• Comunitate mare de utilizatori, multă documentație
• Vast ecosistem de biblioteci științifice/pachete/medii:
NumPy: http://numpy.scipy.org –Numerical Python
SciPy: http://www.scipy.org - Scientific Python
Matplotlib: http://www.matplotlib.org - Grafică
Pandas – http://pandas.pydata.org/ - Analiza Datelor

• Performanță mare datorită integrării cu coduri optimizate scrise în


C / C++ și Fortran: blas, atlas blas, LAPACK, arpack, Intel MKL, …

•Suport bun pentru procesare paralelă cu procese și threads:


comunicare interprocese (MPI), GPU de calcul (OpenCL si CUDA)

•Adecvat pentru utilizarea în calcule de înaltă performanță - clustere.

•Nu există costuri de licență -perfect atât pentru aplicații industriale cât și
pentru cercetarea academică.
ISTORIA PYTHON
•Python a fost creat de Guido van Rossum la sfârșitul anilor 1980, la Institutul
Național de Cercetare pentru Matematică și Informatică în Țările de Jos. La
fel ca Perl, codul sursă Python este disponibil sub licența GNU General
Public License (GPL).

• Python este un limbaj de programare de scop general , de nivel înalt,


interpretat, de scripting orientat pe obiecte și interactiv.

• Inca din 1991 s-au dezvoltat mai multe versiuni disponibile pentru
WINDOWS, UNIX, și Mac OS .
Python 2.4, 2.6, 2.7 …(2000)… Python …. 3.7.11 (2020)
Ultima versiunea Python 3.8.12– 3 Mai 2021
https://www.python.org/downloads/

Verificati : Windows PC : in cmd.exe C: \Users\>python –version


Mac sau Linux: in Terminal python --version
ISTORIA PYTHON

Python are multe module/biblioteci care sunt open-source si gratuite:

Statistica, calcule numerice de optimizare care implică, algebra liniară,


integrare, interpolare, precum și alte funcții speciale folosind obiecte,
lucru cu matrici, machine learning, data mining, desenare 2D, 3D,
dezvoltare web, inteligenta artificiala, etc

Aceste module/biblioteci au un anumit scop și joacă un rol important în


cercetarea în domenii diverse: economie, finanțe, științe biologice, știin țe
sociale, sănătate, și multe altele.
ISTORIA PYTHON

Python are variate implementări:

Jython, scris in limbajul Java pentru Java Virtual Machine

IronPython scris in C# pentru Common Language Infrastructure

PyPy scris in RPython si translatat in C

Aceste implementări funcționează în limbajul în care au fost scrise, dar sunt


capabile să interacționeze cu alte limbaje prin utilizarea modulelor.

Majoritatea acestor module funcționează pe modelul de dezvoltare


comunitară, sunt open-source și gratuite.
Istoria PYTHON si status-ul curent
Puteti citi despre istoria Python:

Istoria Python- https://en.wikipedia.org/wiki/History_of_Python


Istoria sofrwares https://docs.python.org/3.0/license.html

Python a fost numit recent limbajul de programare cu


Click to add text
cea mai rapidă creștere,puteți afla mai multe în aceste articole:

https://stackoverflow.blog/2017/09/06/incredible-growth-python/

https://www.netguru.com/blog/future-of-python

https://insights.stackoverflow.com/survey/2018#technology
Ce este PYTHON ?
• Python este un limbaj de programare de
nivel înalt, interpretat, interactiv,
scripting orientat pe obiecte, și de scop
general.
• Python este interpretat: codul este
procesat în timpul rulării de către un
interpretor, nu este nevoie să compilați
programul înainte de a-l executa - similar
cu PERL și PHP.
• Python este interactiv: puteți sta la un
Python prompt și să interacționați în mod
direct pentru a scrie programe, ușor de
testat si depanat.
• Python este orientat-obiect: Python acceptă
stilul orientat pe obiect sau tehnica de
programare care incapsuleaza codul în
interiorul obiectelor.
Caracteristicile PYTHON
• Python este portabil: rulează pe o varietate de platforme hardware și are
aceeași interfață pe Windows,UNIX și Macintosh OS.

• Python este extensibil: se pot adăuga module de nivel jos pentru interpretor,
module ce permit adăugarea, personalizarea sau eficientizarea diverselor
instrumentele.

• Python este DataBaseAware: oferă interfețe pentru toate bazele de date


comerciale importante.

• Python are Programare GUI: suportă aplicații GUI, care pot fi create și
portate, are multe apeluri de sistem, biblioteci și sisteme de ferestre pentru
Windows MFC, Macintosh și sistemul X Window of Unix.

• Python este scalabil: oferă o structură mai bună și suport pentru programe
mai mari decât shell scripting.
Caracteristicile limbajului PYTHON ?
• Python este ușor de învățat: puține cuvinte cheie, structură simplă/clară și cu
sintaxa minimalistă, perioadă scurtă de învățare:
Tipuri de date nivel înalt: siruri de caractere, liste, dic ționare, etc.
Structurile obișnuite de control: if-else, if-elif-else, while, plus un for
iterator

• Python este intuitiv și ușor de citit: dacă este bine scris e simplu de citit și de
înțeles.

• Python este expresiv, ușor de întreținut: mai puține linii de cod, mai puține
bug-uri, mai ușor de întreținut- mentenabilităte foarte bună cu dimensiunea
proiectelor.

• Python poate fi folosit ca un limbaj de scripting sau pot fi compilat octet-cod


pentru construirea de aplicații mari. Suporta Garbage Colection automat.
Se integreaza usor cu C, Java, R, Julia, Haskell
Avantaje PYTHON
• Avantajul principal este ușurința de programare, minimizarea timpului necesar
pentru dezvoltare, depanare și menținerea codului.

• Limbaj bine conceput, încurajează multe bune practici de programare:


modular și orientat pe obiecte, sistem bun pentru ambalarea și reutilizarea
codului, cod mult mai transparent

• Documentație strâns integrată cu codul

• O maaaare bibliotecă standard care include protocoale de internet, operatii pe


stringuri, instrumente pentru servicii web si interfate cu sistemul de operare

• Python Package Index (PyPI) contine numeroase modules care faciliteaza


interactiunea dintre Python si alte limbaje/platforme de programare
Dezavantaje PYTHON

• Python este un limbaj interpretat, dinamic- executarea codului Python poate fi


lentă în comparație cu limbajele de programare compilate, C și Fortran.

• Python este GNU General Public License (GPL) -oarecum descentralizat, cu


mediu diferit, pachete și documentație răspândită în locuri diferite.

• Python poate fi mai greu la început.


PAUZA ....revenim in 10 min
PYTHON Interpretor
Dacă aveți Python instalat pe computer, puteți executa interpretorul

Interpretorul Python este un program care citește și executa codul


Python în fișierele transmise acestuia ca argumente.

De exemplu, pentru a rula un fișier


test.py care conține codul Python in
linia de comandă, scrieți :
python test.py

De asemenea, putem apela


interpretorul pur și simplu prin
tastarea >>>python (la linia de
comandă) și în mod interactiv scriem
cod Python în interpretor.
Instalare
Există diferite moduri de a instala Python, dar distribuții specializate
au fost create/pre-construite cu diferite module specifice pentru
comunitatea științifică, care funcționează similar indiferent dacă
utilizațiWindows, Linux sau Mac OS X.

• Miniconda vă oferă interpretul Python împreună cu o linie de


comandă numită conda care funcționează ca un manager
multiplataforma de pachete Python
https://docs.conda.io/en/latest/miniconda.html
• Anaconda include atât Python, cât și conda și, în plus include o
suită de alte pachete preinstalate orientate spre calculul științific (să
vă așteptați ca instalarea să consume mulți gigaocteți de spaţiu pe
disc)
https://www.anaconda.org
Instalare
Oricare din pachetele incluse în Anaconda poate fi instalat manual
deasupra în Miniconda.

Descărcați și instalați pachetul Miniconda (alegeți versiunea cu


Python 3)
https://docs.conda.io/en/latest/miniconda.html

Apoi instalați pachetele de bază prin tastarea comenzii cu sintaxa:


conda install numele pachetului
Exemplu:
$ conda install numpy pandas scikit-learn matplotlib seaborn
ipython-notebook

Pentru mai multe informații despre conda, inclusiv informații despre


crearea și folosirea mediilor conda consultați documentația online:
https://conda.io/en/latest/
Medii de dezvoltare – PYTHON

Integrated Development Environments (IDEs) - medii diferite de


dezvoltare prin care interpretorul Python poate fi folosit:
• PythonXY
• PyCharm
• IDLE - offline editor
• Trinket – online editor https://docs.trinket.io
• IPython
• IPython notebook → Jupyter notebook
• Spyder

Ideal de folosit IPython plus un editor de text, ceea ce vine integrat


in distribuția Anaconda (https://www.anaconda.org)
IPython shell
IPython (Interactive Python ) - Fernando Perez 2001
“Tools for the entire lifecycle of research computing.”
IPython este interpretorului Python îmbunătățit foarte mult.
Python - motorul, IPython - un control panel interactiv
IPython Notebook - Jupyter Notebook
Jupyter Notebook - a browser-based graphical interface to the
IPython shell - util în dezvoltare, colaborare, partajarea și chiar
publicarea rezultatelor din comunitatea științifică.

Notebook-ul permite utilizatorului să introducă text formatat și


vizualizări dinamice, ecuații matematice, widget-uri JavaScript, etc
Aceste documente pot fi salvate într-un mod care permite altor
utilizatori să le deschidă și să execute codul în propriile sisteme.

Notebook-ul IPython este de fapt un caz special al structurii mai


largi a notebook-ului Jupyter, care cuprinde notebook-uri pentru
Julia, R și alte limbaje de programare.

IPython shell sau IPython notebook


IPython shell
Lansați interfeța IPython prin tastarea ipython pe linia de comandă

gabi@koko:~$ ipython
Python 3.8.8 (default, Apr 13 2021, 19:58:26)
Type 'copyright', 'credits' or 'license' for more
information
IPython 7.26.0 -- An enhanced Interactive Python.
Type '?' for help.

In [1]:

Dacă ați instalat distribuția Anaconda, doar selectati IPython


IPython shell
Câteva din caracteristicile utile din IPython:
Istoricul comenzilor - folosind săgețile în sus și în jos de pe
tastatură

Tasta TAB – auto-completarea aproape pe orice, nu numai pe


obiecte, nume de funcții sau comenzi python

Extragerea automata a documentației Python, obiecte, clase și


funcții – folosind punct . ? sau ??

Interacțiunea cu sistemul de operare prin intermediul comenzilor


precedate de % și de !

Suport pentru mai multe procese de back-end paralele, care pot


rula pe clustere sau de servicii de tip cloud - Amazon EE2.
Jupyter Notebook

Jupyter Notebook este vizualizat și editat prin browserul web care


va trebui să se conecteze la un proces Python care va rula si
executa codul -acest proces este cunoscut sub numele de
„kernel”
Lansați interfeța prin tastarea in linia de comandă :

$ jupyter notebook
[NotebookApp] Serving notebooks from local
directory: /Users/jakevdp/...
[NotebookApp] 0 active kernels
[NotebookApp] The IPython Notebook is running at:
http://localhost:8888/
[NotebookApp] Use Control-C to stop this server and
shut down all kernels…

Dacă ați instalat distribuția Anaconda, doar selectati Jupyter


Jupyter Notebook
Spyder
Spyder este un IDE Python pentru calcul științific asemănător cu
MATLAB-ul - totul, de la editare de cod, execuție și depanare se
efectuează într-un singur mediu de lucru:
-editor de cod puternic, cu sintaxa high-lighting, introspectia
codulului dinamică și integrarea cu debugger-ul Python.
explorarea variabilelor, comanda prompt IPython.
- documentație integrată.
Versiunea Python2 sau Python3 ?
Python 3 a apărut în 2008, versiunea finala Python 2.7 în 2010
astfel vesiunile Python 3.0 și 3.1 au fost portate și în versiunile 2.6
și 2.7

O mulțime de cod existent și pachete au fost scrise pentru Python2,


Python2 este în continuare versiunea cea mai răspândită.

Majoritatea comunitații stiințifice nu a migrat incă la Python3.

Mai multe versiuni de Python pot fi instalate în paralel !

Exista convertoare 2to3 (code 3.x să fie generat din code 2.x) și
3to2 convertește code3.x la code2.x

https://wiki.python.org/moin/Python2orPython3
https://docs.python.org/3/whatsnew/3.0.html
Python3
Îmbunătățiri pentru a face limbajul mai clar și mai consistent:
Funcția print a fost înlocuită cu print()
Python2: print "Răspunsul este", 2*2
Python3: print("Răspunsul este", 2*2)

Python2: print x, # virgula suspenda crearea unei linii noi


Python3: print(x, end=" ") # virgula apendează un spațiu

Python2: print "A\n", "B" va printa "A\nB\n"


Python3: print("A\n", "B") writes "A\n spatiu B\n"

Python2: print >>sys.stderr, "fatal error"


Python3: print("fatal error", file=sys.stderr)

Python3:print("Sunt <", 2**32, "> posibilități!", sep="") va printa:


Sunt <4294967296> posibilități!
Python3
Exemplu:
Python3: functia print() permite ca argumente cuvintele cheie sep
și end, pentru a specifica ce „tip de string” e folosit pentru a
separa argumentele sau a termina linia printată

Aceste „stringuri” sunt:


""– spațiu (default)
"\n" o linie noua

Această caracteristică face posibilă printarea mai multor valori, pe


linii separate cu un singur apel de funcție:

print(x, y, z, sep=”\n”)

Următoarea comanda cum va printa?


print("Sunt <", 2**3, "> posibilități!")
Built-in types: Python3
Python2: ambiguitatea “poate fi text, pot fi date arbitrare binare”-
nu există un tip de caracter, astfel încăt caracterele sa poată fi
reprezentate pur și simplu ca șiruri de lungime 1.
type str (utilizat, derutant, pentru ambele șiruri de caractere ASCII și
șiruri arbitrare de octeți )
type unicode (ptr siruri de caractere compus din caractere Unicode).

Python3:
type str (comportamentul și punerea în aplicare a tipului unicode
vechi).
type bytes (o secvență de numere întregi între 0 și 255 inclusiv,
conține întotdeauna date binare arbitrare)
Tipurile str și bytes nu pot fi amestecate! Trebuie convertite între ele!
str.encode() - de la str la bytes str(b, encoding=...)
bytes.decode() de la bytes la str. bytes(s, encoding=...)
Python3
Comparații clare și curate:
Python2: permite compararea tipurilor diferite folosind <, >, etc:
>>> 42 < 'hello'
True

De ce se evalueaza la True ? Trebuia să fie evaluata ?

Python3: astfel de operații dau excepții


>>> 42 < 'hello'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unorderable types: int() < str()

Python2: <> # operator pentru „nu sunt egale” sau „sunt diferite”
Python3: != # operator pentru „nu sunt egale” sau „sunt diferite”
Python3
Operatorul de împărțire:

Python2: la fel ca în Java, C sau C++ , rezultatul e cel al funcției


'floor' când împărțim doi intregi:
>>> 1 / 2
0

Python3: împărțirea a două nr intregi returneaza o valoare reală:


>>> 1 / 2
0.5

Python3: 1 // 2
0
# operator // pentru împarțirea cu rezultatul funcției 'floor'
NumPy
NumPy- Numerical Python și SciPy - Scientific Python sunt
pachetele fundamentale folosite în calculul științific.

NumPy printre altele conține:


• Obiectul matrice multidimensionala – ndarray modalitate mult
mai eficientă de stocare și manipulare a datelor decât celelalte
structuri de date built-in Python
• Funcții pentru efectuarea de calcule matematice element-wise sau
pe matrice, operații între matrici
• Instrumente pentru citirea și scrierea seturilor de date bazate pe
matrice pe disc
• Operații de algebră liniară, transformate Fourier, și generarea de
numere aleatoare
• Instrumente pentru integrarea cu limbajele C, C ++, Fortran –
• Bibliotecile scrise în C sau Fortran pot opera pe datele stocate
într-o matrice NumPy fără a copia date.
SciPy

SciPy extinde pachetul NumPy cu o colecție de algoritmi și tehnici


matematice aplicate.
• scipy.integrate: rutine de integrare numerică și rezolvarea
ecuațiilor diferențiale
• scipy.linalg: rutine de algebră liniară și descompuneri matriceale
• scipy.optimize: algoritmi de optimizare (minimizare)
• scipy.signal: instrumente de prelucrare a semnalului
• scipy.sparse: rutine ptr matrici rare și de rezolvarea sistemelor
liniare rare
• scipy.stats: distribuții de probabiliăți continue și discrete (funcții
de densitate, samplere, funcțiile de distribuție continuă), diferite
teste statistice, statistică descriptivă
• scipy.weave: instrument pentru utilizarea inlinie a codului C ++
pentru accelerarea calculelor matriciale
Pandas

Pandas - panel data (panoul de date) un termen din econometrie


folosit pentru seturile de date structurate multidimensional

Pandas ofera structuri de date bogate și funcții concepute pentru a


face rapid și ușor analiza datelor.

Pandas combină caracteristicile de calcul matriciale de înaltă


performanță din NumPy cu capabilitățile de manipulare a datelor,
spreadsheets și a bazelor de date relaționale ( SQL)- oferă
funcționalități de indexare sofisticate, remodelare, agregări și
selectări de subseturi de date.

DataFrame este structura de date bidimensională cu rânduri și


coloane etichetate.
MatPlotLib

Matplotlib este cea mai populară biblioteca Python pentru


vizualizarea datelor 2D.

A fost inițial creat de John D. Hunter (JDH) și acum este menținut


de către o echipă mare de dezvoltatori.

Matplotlib nu este singurul pachet pentru vizualizarea datelor în


Python - alte pachete sunt ggplot, ggplot2.

Mayavi : vizualizarea datelor 3D


http://code.enthought.com/projects/mayavi/
PYTHON Interpretor – on line
Puteți practica si folosind unul dintre numeroasele interpretoare sau
codepad-uri Python disponibile online.

Un interpretor este mai interactiv decât un codepad, dar ambele vă


permit să executați cod și să vedeți rezultatele.

Linkuri către cele mai populare interpretoare și codepad-uri online:

https://www.python.org/shell/
https://www.onlinegdb.com/online_python_interpreter
https://repl.it/languages/python3
https://www.tutorialspoint.com/execute_python3_online.php
https://rextester.com/l/python3_online_compiler
https://trinket.io/python3
Test

Folosind unul din interpretoarele on line:

1. Scrieți comanda Python care afișează pe ecran


Programez în Python!

Amintiți-vă că trebuie să utilizați funcția print () și să folosiți


ghilimele pentru a delimita șirul.

2 Scrieti comanda Python ptr a calcula (((1+2)*3)/4) la puterea


5
Trebuie să utilizați funcția print () și să folosiți atatea seturi de
paranteze cate aveti nevoie, iar ridicarea la putere se face cu **
Instalare

Distribuții specializate au fost create/pre-construite cu diferite


module specifice pentru comunitatea științifică, pentru Windows,
Unix, Mac OS :

•Anacona www.anaconda.com

Editoarele de text Spyder sau Scite sunt deja incorporate!

Veniti cu laptop-uri la laborator!


PEP - Python Enhancement Proposals

În Python, există sute de Python Enhancement Proposals, denumite


în mod obișnuit PEP.

PEP8 este un ghid stilistic standard pentru Python, scris chiar de


Guido van Rossum însuși.

PEP20, numit de obicei Zen-ul Python scris de Tim Peters sunt 20


de aforisme pentru a scrie cod Python stilistic și corect.
PEP20 – Zen of Python
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
Bibliografie

Python: http://www.python.org/
Python Documentations: https://docs.python.org/3/
Python Tutorial https://docs.python.org/3/tutorial/
IPython: http://ipython.org/
Jupyter Notebook: https://jupyter.org/
NumPy: http://www.numpy.org/
SciPy: https://www.scipy.org/
Pandas: http://pandas.pydata.org/
Matplotlib -2D: http://matplotlib.org/
Mayavi - 3D:http://code.enthought.com/projects/mayavi/
Bibliografie

https://github.com/jrjohansson/scientific-python-
lectures/blob/master/Lecture-1-Introduction-to-Python-
Programming.ipynb

Think Python – How to Think like a Computer Scientist


Allen B. Downey, 2nd Edition ptr Python 3
http://greenteapress.com/wp/think-python-2e/

S-ar putea să vă placă și