Vecteur Avec Numpy
Vecteur Avec Numpy
Vecteur Avec Numpy
Numpy ?
Il n’est pas possible de tout aborder dans ce support. Pour aller plus loin, voir
absolument le manuel de référence (utilisé pour préparer ce diaporama).
http://docs.scipy.org/doc/numpy/reference/index.html
2
Création à la volée, génération d’une séquence, chargement à partir d’un fichier
3
Création via une saisie manuelle
valeurs
#type de la structure
print(type(a)) #<class ‘numpy.ndarray’>
#type des données
print(a.dtype) #float64
#nombre de dimensions
Informations sur la
print(a.ndim) #1 (on aura 2 si matrice, etc.)
structure #nombre de lignes et col
print(a.shape) #(4,) → on a tuple ! 4 cases sur la 1ère dim (n°0)
#nombre totale de valeurs
print(a.size) #4, nb.lignes x nb.colonnes si matrice
4
Typage des données
– 5
Création d’une séquence de valeurs
#liste de valeurs
lst = [1.2,3.1,4.5]
Conversion d’une print(type(lst)) #<class ‘list’>
collection (type standard #conversion à partir d'une liste
Python) en type array de a = np.asarray(lst,dtype=float)
« numpy » print(type(a)) #<class ‘numpy.ndarray’>
print(a) #[1.2 3.1 4.5]
– 7
Redimensionnement
#vecteur de valeurs
a = np.array([1.2,2.5,3.2,1.8])
Rajouter une valeur en #ajouter une valeur , placée en dernière position
dernière position a = np.append(a,10)
print(a) #[1.2 2.5 3.2 1.8 10.]
a = np.array([1,2,3])
#redimensionnement
Redimensionnement
#1 valeur pour vecteur, couple de valeurs pour matrice
explicite a.resize(new_shape=5)
print(a) #[1 2 3 0 0], les nouvelles cases mises à 0
#concatenation 2 vecteurs
Concaténation de 2 x = np.array([1,2,5,6])
y = np.array([2,1,7,4])
vecteurs
z = np.append(x,y)
print(z) #[1 2 5 6 2 1 7 4]
– 8
Accéder aux valeurs via des indices ou des conditions
EXTRACTION DES VALEURS
– 9
Accès indicé – Plages d’indices – v = np.array([1.2,7.4,4.2,8.5,6.3])
#toutes les valeurs
print(v)
#ou
print(v[:]) # noter le rôle du : , il faut lire ici début à fin
#accès indicé - première valeur
print(v[0]) # 1.2 – Noter que le 1er indice est 0 (zéro)
#dernière valeur
print(v[v.size-1]) #6.3, v.size est ok parce que v est un vecteur
#plage d'indices contigus
print(v[1:3]) # [7.4 4.2]
#extrêmes, début à 3 (non-inclus)
print(v[:3]) # [1.2 7.4 4.2] Remarque : Mis à part
#extrêmes, 2 à fin les singletons, les
print(v[2:]) # [4.2 8.5 6.3] vecteurs générés sont
#indice négatif de type numpy.ndarray
print(v[-1]) # 6.3, dernier élément
#indices négatifs
print(v[-3:]) # [4.2 8.5 6.3], 3 derniers éléments
– 10
Accès indicé – Ecriture générique - v = np.array([1.2,7.4,4.2,8.5,6.3])
#on peut exploiter cette idée pour inverser un vecteur -- ou bien utiliser flip()
print(v[::-1]) # [6.3, 8.5, 4.2, 7.4, 1.2]
– 11
Accès par conditions – Indiçage booléen – v = np.array([1.2,7.4,4.2,8.5,6.3])
– 12
Tri et recherche -- v = np.array([1.2,7.4,4.2,8.5,6.3])
#valeurs distinctes
a = np.array([1,2,2,1,1,2])
print(np.unique(a)) # [1 2]
– 13
CALCULS SUR LES VECTEURS
– 14
Calculs (statistiques) récapitulatifs – v = np.array([1.2,7.4,4.2,8.5,6.3])
#moyenne
print(np.mean(v)) # 5.52
#médiane
print(np.median(v)) # 6.3
#variance
print(np.var(v)) # 6.6856
#quantile
print(np.percentile(v,50)) #6.3 (50% = médiane)
#somme
print(np.sum(v)) # 27.6
#somme cumulée
print(np.cumsum(v)) # [1.2 8.6 12.8 21.3 27.6]
La librairie n’est pas très fournie, nous aurons besoin de SciPy (et autres)
– 15
Calculs entre vecteurs – Le principe « elementwise »
#calculs entre vecteurs
x = np.array([1.2,1.3,1.0])
y = np.array([2.1,0.8,1.3]) Principe : Les calculs se font élément par élément
#multiplication
print(x*y) # [2.52 1.04 1.3] (elemenstwise) entre vecteurs « numpy » - On a le
#addition même principe sous R, mais sans la réplication si
print(x+y) # [3.3 2.1 2.3]
les dimensions ne concordent pas.
#multiplication par un scalaire
print(2*x) # [2.4 2.6 2. ]
#comparaison de vecteurs
x = np.array([1,2,5,6])
y = np.array([2,1,7,4])
b=x>y
print(b) # [False True False True]
La liste des fonctions est longue.
#opérations logiques Voir -
a = np.array([True,True,False,True],dtype=bool) http://docs.scipy.org/doc/nump
b = np.array([True,False,True,False],dtype=bool) y/reference/routines.logic.html
#ET logique
np.logical_and(a,b) # [True False False False]
#OU exclusif logique
np.logical_xor(a,b) # [False True True True]
– 16
Fonctions matricielles
– 17
Opérations ensemblistes
#intersection
print(np.intersect1d(x,y)) # [1 2]
– 18
Références
Site de Python
Welcome to Python - https://www.python.org/
Python 3.4.3 documentation - https://docs.python.org/3/index.html
Portail Python
Page Python de Developpez.com
POLLS (KDnuggets)
Data Mining / Analytics Tools Used
Python, 4ème en 2015
What languages you used for data mining / data science?
Python, 3ème en 2014 (derrière R et SAS)
– 19