











Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Use of numpy for scientific calculations.
Typology: Study Guides, Projects, Research
1 / 19
This page cannot be seen from the preview
Don't miss anything!












R.R. – Université Lyon 2 1
Ricco Rakotomalala http://eric.univ-lyon2.fr/~ricco/cours/cours_programmation_python.html
Numpy?
R.R. – Université Lyon 2
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).
Création via une saisie manuelle
R.R. – Université Lyon 2
Préalable important : importer le module « numpy »
import numpy as np
np sera l’alias utilisé pour accéder aux routines de la librairie « numpy ».
Création manuelle à partir d’un ensemble de valeurs
a = np .array( [ 1.2,2.5,3.2,1.8 ] ) Noter le rôle des [ ] pour délimiter les valeurs
#type de la structure print(type(a)) # #type des données print(a.dtype) #float #nombre de dimensions print(a.ndim) #1 (on aura 2 si matrice, etc.) #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
Typage des données
R.R. – Université Lyon 2
Le typage des valeurs peut être implicite ou explicite
#création et typage implicite a = np.array([1,2,4]) print(a.dtype) #int
#création et typage explicite – préférable! a = np.array([1,2,4],dtype=float) print(a.dtype) #float print(a) #[1. 2. 4.]
#un vecteur de booléens est tout à fait possible b = np.array([True,False,True,True], dtype=bool) print(b) #[True False True True]
Création d’un array d’objets complexes (autres que les types de base) est possible
a = np.array([{"Toto":(45,2000)},{"Tata":(34,1500)}]) print(a.dtype) #object
Chargement à partir d’un fichier - Conversions
R.R. – Université Lyon 2
Les données peuvent être stockées dans un fichier texte (loadtxt pour charger, savetxt pour sauver)
#charger à partir d'un fichier #typage explicite possible a = np.loadtxt("vecteur.txt",dtype=float) print(a) #[4. 5. 8. 16. 68. 14. 35.]
1 seule colonne pour l’instant
Conversion d’une collection (type standard Python) en type array de « numpy »
#liste de valeurs lst = [1.2,3.1,4.5] print(type(lst)) # #conversion à partir d'une liste a = np.asarray(lst,dtype=float) print(type(a)) # print(a) #[1.2 3.1 4.5]
Remarque : si besoin, modifier le répertoire par défaut avec la fonction chdir() du module os (qu’il faut importer au préalable)
Redimensionnement
R.R. – Université Lyon 2
Rajouter une valeur en dernière position
Suppression d’une valeur via son indice
Concaténation de 2 vecteurs
Redimensionnement explicite
#vecteur de valeurs a = np.array([1.2,2.5,3.2,1.8]) #ajouter une valeur , placée en dernière position a = np.append(a,10) print(a) #[1.2 2.5 3.2 1.8 10.]
#suppression via indice b = np.delete(a,2) #une plage d’indices est aussi possible print(b) #[1.2 2.5 1.8 10.]
a = np.array([1,2,3]) #redimensionnement #1 valeur pour vecteur, couple de valeurs pour matrice a.resize(new_shape=5) print(a) #[1 2 3 0 0], les nouvelles cases mises à 0
#concatenation 2 vecteurs x = np.array([1,2,5,6]) y = np.array([2,1,7,4]) z = np.append(x,y) print(z) #[1 2 5 6 2 1 7 4]
Accès indicé – Plages d’indices – v = np.array([1.2,7.4,4.2,8.5,6.3])
R.R. – Université Lyon 2
#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]
#extrêmes, 2 à fin print(v[2:]) # [4.2 8.5 6.3]
#indice négatif print(v[-1]) # 6.3, dernier élément
#indices négatifs print(v[-3:]) # [4.2 8.5 6.3], 3 derniers éléments
Accès indicé – Ecriture générique - v = np.array([1.2,7.4,4.2,8.5,6.3])
R.R. – Université Lyon 2
#valeur n°1 à n°3 avec un pas de 1 print(v[1:4:1]) # [7.4, 4.2, 8.5]
#le pas de 1 est implicite print(v[1:4]) # [7.4, 4.2, 8.5]
#n°0 à n°2 avec un pas de 2 print(v[0:3:2]) # [1.2, 4.2]
#le pas peut être négatif, n°3 à n°1 avec un pas de - print (v[3:0:-1]) # [8.5, 4.2, 7.4]
#on peut exploiter cette idée pour inverser un vecteur print(v[::-1]) # [6.3, 8.5, 4.2, 7.4, 1.2]
Tri et recherche -- v = np.array([1.2,7.4,4.2,8.5,6.3])
R.R. – Université Lyon 2
R.R. – Université Lyon 2
Calculs entre vecteurs – Le principe « elementwise »
R.R. – Université Lyon 2
#calculs entre vecteurs x = np.array([1.2,1.3,1.0]) y = np.array([2.1,0.8,1.3]) #multiplication print(xy) # [2.52 1.04 1.3] #addition print(x+y) # [3.3 2.1 2.3] #multiplication par un scalaire print(2x) # [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]
#opérations logiques a = np.array([True,True,False,True],dtype=bool) b = np.array([True,False,True,False],dtype=bool) #ET logique np.logical_and(a,b) # [True False False False] #OU exclusif logique np.logical_xor(a,b) # [False True True True]
La liste des fonctions est longue. Voir - http://docs.scipy.org/doc/nump y/reference/routines.logic.html
Fonctions matricielles
R.R. – Université Lyon 2
R.R. – Université Lyon 2 19
Références
De la documentation à profusion ( n’achetez pas des livres sur Python )
Site du cours http://eric.univ-lyon2.fr/~ricco/cours/cours_programmation_python.html
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
Quelques cours en ligne P. Fuchs, P. Poulain, « Cours de Python » sur Developpez.com G. Swinnen, « Apprendre à programmer avec Python » sur Developpez.com « Python », Cours interactif sur Codecademy
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)