0% ont trouvé ce document utile (0 vote)
4 vues64 pages

Introduction à Numpy et Pandas en Python

Ce document présente une introduction à la manipulation et à l'analyse des données en utilisant les bibliothèques Python NumPy et Pandas. Il décrit les caractéristiques de NumPy, y compris la création et la manipulation de tableaux multidimensionnels, ainsi que les fonctionnalités de Pandas pour le stockage et la gestion des données. Des exemples de code illustrent l'utilisation de ces bibliothèques pour effectuer des opérations mathématiques, gérer des données manquantes et manipuler des structures de données.

Transféré par

wiwi
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
4 vues64 pages

Introduction à Numpy et Pandas en Python

Ce document présente une introduction à la manipulation et à l'analyse des données en utilisant les bibliothèques Python NumPy et Pandas. Il décrit les caractéristiques de NumPy, y compris la création et la manipulation de tableaux multidimensionnels, ainsi que les fonctionnalités de Pandas pour le stockage et la gestion des données. Des exemples de code illustrent l'utilisation de ces bibliothèques pour effectuer des opérations mathématiques, gérer des données manquantes et manipuler des structures de données.

Transféré par

wiwi
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Cours :

Compétences Numériques et Programmation

[Link]
1 20/11/2025
Chapitre 5:
Manipulation et analyse des données
Manipulation et analyse des données
• Qu'est-ce que numpy ?

✓ l’abréviation de « Numerical Python ». Il s’agit d’une bibliothèque Open Source en langage


Python.

✓ Elle permet de manipuler des tableaux multidimensionnels (souvent appelés arrays) de manière
très efficace et propose de nombreuses fonctions pour effectuer des calculs numériques
rapides.

✓ Numpy permet la manipulation de grands volumes de données, sous forme de tableau, de


manière bien plus efficace que Python.
Manipulation et analyse des données
Comparaison des caractéristiques:

Caractéristique [Link] (Python standard) [Link] (NumPy)


Origine Module standard array Bibliothèque NumPy
Types nombreux (int, float,
Types supportés Un seul type (int, float, etc.)
complex, bool, etc.)
Dimensions 1D uniquement
Lente pour les opérations Multi-dimensionnel
Contient
Très rapide
despour
éléments (nD)
les calculs
du même
Critèred'éléments
Types
Performance Peut contenir
Liste Python des types différents [Link]
Opérations mathématiques numériques
Non type
numériques
Oui (vectorisées et rapides)
Performance Moyenne Très élevée (implémenté en C)
Calculs scientifiques et
Utilisation typique Séquence simple de nombres
manipulation de données
Manipulation et analyse des données
Comparaison des caractéristiques:

import array
import numpy as np

a1 = [Link]('i', [1, 2, 3])


a2 = [Link]('i', [4, 5, 6])
# print(a1 + a2) #array('i', [1, 2, 3, 4, 5, 6]) Erreur : ne fait que concaténer les
tableaux Contient des éléments du même
Critère
Types d'éléments Liste contenir
Peut Python des types différents [Link]
type
n1 = [Link]([1, 2, 3])
n2 = [Link]([4, 5, 6])
print(n1 + n2) # [5 7 9]
Manipulation et analyse des données
Conversion automatique:

a = [Link]([1, 2.5, 3])


print(a)
print([Link])

#Résultat

Critère
[1. 2.5 3. ] Liste Python [Link]
float64
Manipulation et analyse des données
Conversion automatique:

a = [Link]([1, "hello", [1,2,3]])


print(a)
print([Link])

#Résultat

Critère
[1 'hello' list([1, 2, 3])] Liste Python [Link]
object
Manipulation et analyse des données
Conversion automatique:

a = [Link]([1, "hello", [1,2,3]])


print(a)
print([Link])

#Résultat

Critère
[1 'hello' list([1, 2, 3])] Liste Python [Link]
object
Manipulation et analyse des données
Conversion automatique:

•Oui, [Link] peut contenir des types hétérogènes,


•il devient un simple conteneur d’objets Python (dtype=object),
•Perte de la performance de NumPy
•Les opérations vectorisées ne marchent plus
Critère Liste Python [Link]
Manipulation et analyse des données
• Installation de numpy ?

$ pip install numpy

import numpy as np

Vérification de l'installation

import numpy as np

print(np.__version__)
Manipulation et analyse des données
• L’instruction « [Link] » :

Il prend en paramètre la liste des nombres qui seront contenus dans le tableau, par
exemple si on veut initialiser un tableau avec les valeurs 1, 1.5, 2 et 2.5:

>>> import numpy as np


>>> tableau = [Link]([1, 1.5, 2, 2.5])
>>> tableau
array([1, 1.5, 2, 2.5])
Manipulation et analyse des données
• L’instruction « [Link] » :

>>> tableau = [Link]([1, 2, 4])

>>> for i in tableau:


print(i)
1
2
4
Manipulation et analyse des données
• L’instruction « [Link] » :

>>> tableau = [Link]([1,2,3,4])


>>> tableau[0]
1
>>> tableau[2]
3
>>> len(tableau)
4
Manipulation et analyse des données
• L’instruction « [Link] » :

Pour sélectionner une partie du tableau, on peut utiliser les slices :

>>> tableau = [Link]([1,2,3,4])


>>> tableau[0:2]
array([1, 2])
>>> tableau[1:]
array([2, 3, 4])
>>> tableau[:-1]
array([1, 2, 3])
Manipulation et analyse des données
• L’instruction « [Link] » :

permet d’ajouter, de supprimer et d’insérer des éléments dans les tableaux::

>>> tableau = [Link]([1, 2, 4, 6])


>>> [Link](tableau, 8) # Ajoute l'élément 8 à la fin du tableau
array([1, 2, 4, 6, 8])
>>>
>>> [Link](tableau, 1) # Supprime l'élément à l'index 1 (ici l'entier 2)
array([1, 4, 6])
>>>
>>> [Link](tableau, 2, 3) # Insère l'élément 3 à l'index 2
array([1, 2, 3, 4, 6])
Manipulation et analyse des données
• L’instruction « [Link] » :

Les formules mathématiques s’utilisent directement sur les tableaux, celles-ci seront alors
appliquées à tous les éléments du tableau:

>>> tableau = [Link]([1, 2, 4, 6])


>>> tableau ** 2 + 1 # Met au carré puis ajoute 1 3
array([2, 5, 17, 37])
Manipulation et analyse des données
• Générer des tableaux :

>>> [Link](0, 10, 5) # 5 nombres compris entre 0 et 10


array([ 0. , 2.5, 5. , 7.5, 10. ])
>>> [Link](1, 5, 0.5) # Nombres de 1 et à 5 (exclu) avec un pas de 0.5
array([1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5])
Manipulation et analyse des données
• L’instruction [Link] :

Numpy permet aussi de créer un tableau avec des données aléatoires, en utilisant la fonction
[Link](n) qui va renvoyer un tableau avec n valeurs comprises entre 0 et 1:

>>> [Link](3)
array([0.06246263, 0.4517823 , 0.66618466])

On trouve la fonction [Link](max, size=n) qui va retourner un tableau avec n valeurs


comprises entre 0 et max (exclu)

>>> [Link](10, size=5)


array([2, 8, 3, 7, 8])
Manipulation et analyse des données
• Fonctions utiles :

array = [Link](3)
print(array)
[0. 0. 0.]

array_ones = [Link](3)
print(array_ones)
[1. 1. 1.]
Manipulation et analyse des données
• Fonctions utiles :

array_full = [Link](3, 7) # Remplir le tableau de 7


print(array_full)
[7 7 7]

array_empty = [Link](3)
print(array_empty)
[ 2.08168065e-314 4.54747414e-310 2.33419580e-314]
#Valeurs aléatoires
Manipulation et analyse des données
• Fonctions utiles :
>>> tableau = [Link]([5, 1, 6, 9])
>>> [Link](tableau) # Trie le tableau
array([1, 5, 6, 9])
>>> [Link](tableau) # La moyenne
5.25
>>> [Link](tableau) # La médiane
5.5
>>> np.count_nonzero(tableau) # Le nombre de valeurs différentes de 0
4
>>> np.count_nonzero([Link](tableau)) # Le nombre de 0
0
Manipulation et analyse des données
• Rechercher dans un tableau:
La fonction [Link] prend en paramètre une condition sur les valeurs d’un tableau
et va retourner l’index des éléments qui vérifient la condition.

>>> tableau = [Link](1, 25) # Tableau avec les nombres entiers de 1 à 24


>>> [Link](tableau % 5 == 0) # L'index des nombres divisibles par 5
(array([4, 9, 14, 19],)

>>> [Link]((tableau % 5 == 0)& (tableau > 19))


(array([19]),)

>>> [Link]((tableau % 5 == 0)| (tableau > 19))


(array([ 4, 9, 14, 19, 20, 21, 22, 23]),)
Manipulation et analyse des données
• Rechercher dans un tableau:

La fonction [Link] renvoie les éléments qui vérifient la condition.

>>> [Link](tableau % 5 == 0, tableau) # Les nombres divisibles par 5


array([5, 10, 15, 20])
Manipulation et analyse des données
• Les tableaux de deux dimensions :

Numpy permet de créer des tableaux de plusieurs dimensions:

>>> tableau = [Link]([[1, 2, 3], [4, 5, 6], [7, 8, 9]])


>>> tableau
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
Manipulation et analyse des données
• Les tableaux de deux dimensions :

Pour parcourir un tableau à deux dimensions , on utilise alors deux boucles for
imbriquées :

>>> tableau = [Link]([[1, 2, 3], [4, 5, 6]])


>>> for i in tableau:
for j in i:
print(j)
1
2
3
4
5
6
Manipulation et analyse des données
• Les tableaux de deux dimensions :

Si on veut accéder à un élément en particulier, numpy possède l’instruction tableau


[ligne,colonne]:

>>> tableau = [Link]([[1, 2, 3], [4, 5, 6]])


>>> tableau[1, 2]
6
>>> tableau[0, 0]
1
Manipulation et analyse des données
• Fonction « transpose » :

>>> tableau = [Link]([[1, 2, 3], [4, 5, 6]])


>>> tableau
array([[1, 2, 3],
[4, 5, 6]])
>>>
>>> [Link](tableau)
array([[1, 4],
[2, 5],
[3, 6]])
Manipulation et analyse des données
• Fonction « reshape » :
permet de changer les dimensions d’un tableau, sans changer les valeurs, si
la taille est compatible:
>>> tableau = [Link]([1, 2, 3, 4, 5, 6])
>>> [Link](3, 2) # 3 lignes et 2 colonnes
array([[1, 2],
[3, 4],
[5, 6]])
>>> [Link](2, 3) # 2 lignes et 3 colonnes
array([[1, 2, 3],
[4, 5, 6]])
>>> [Link](3, 3) # Impossible, il faudrait que le
tableau ait une longueur de 9 10
Traceback (most recent call last):
File "<pyshell#16>", line 1, in <module>
[Link](3, 3)
ValueError: cannot reshape array of size 6 into shape (3,3)
Manipulation et analyse des données
• Les tableaux de deux dimensions :

Si on veut accéder à un élément en particulier, numpy possède l’instruction tableau


[ligne,colonne]:

>>> [Link](6, size=[3, 3]) # Nombres compris entre 0 (inclus) et 6 (exclus)


array([[1, 0, 3],
[4, 0, 5],
[5, 5, 1]])
Manipulation et analyse des données
• Qu'est-ce que Pandas ?

✓ Pandas est une bibliothèque Open Source écrite pour le langage de programmation
Python permettant la manipulation et l'analyse de données.

✓ Elle propose en particulier des structures de données et des opérations de manipulation


de tableaux numériques et de séries temporelles.

Les principales structures de données gérées par cette bibliothèque sont :

✓ Séries : stockage des données selon une dimension - grandeur en fonction d'un index
✓ DataFrames : stockage des données selon 2 dimensions - lignes et colonnes ou avec des index
hiérarchiques (MultiIndex) pour un stockage selon plus de 2 dimensions.
Manipulation et analyse des données
• Installation :

pip install pandas

import pandas as pd
print(pd.__version__)
Manipulation et analyse des données
• caractéristiques de Pandas :
•Manipulation facile des données : Vous pouvez facilement trier, filtrer, et regrouper des
données.
•Gestion des données manquantes : Pandas offre des outils pour détecter et remplir ou
supprimer les valeurs manquantes.
•Alignement des données : Les opérations sur des DataFrames alignent automatiquement
les données en fonction des indices.
•Support pour divers formats de données : Pandas peut lire et écrire dans plusieurs formats,
notamment CSV, Excel, JSON, SQL, etc.
•Intégration avec d'autres bibliothèques : Il fonctionne bien avec d'autres bibliothèques
Python comme NumPy, Matplotlib et Scikit-learn.
Manipulation et analyse des données
• objet « Series » :

•Un objet Series est de 1 dimension comme un tableau.


•Series est un objet de données qui est mutable. Cela implique qu'il est possible de le mettre à
jour, d'ajouter de nouveaux éléments et de supprimer des éléments existants.
•Il peut contenir des données de tout type.
•Il peut être instancié avec un tableau ou un dictionnaire. Les index sont représentés par les
clés du dictionnaire.
•Le constructeur de Series peut être appelé en transmettant des données, un index, un type
de données et un indicateur booléen indiquant si nous voulons copier les données. Si les noms
d'index ne sont pas spécifiés, les index sont classés comme des entiers à partir de 0.
Manipulation et analyse des données
• objet « Series » :

>>> import pandas as pd


>>> x = [Link]([1,2,30,0,15,6])
>>> x
01
12
2 30
30
4 15
56
dtype: int64
Manipulation et analyse des données
• objet « Series » :

La structure de base pour les Pandas Series est un tableau NumPy ,On peut indexer
cet objet en utilisant un tableau Numpy.

>>> import pandas as pd


>>> x = [Link]([1,2,30,0,15,6])
>>> x[1:3] # utiliser les slices de numpy
12
2 30
dtype:int64
Manipulation et analyse des données
• objet « Series » :

La structure de base pour les Pandas Series est un tableau NumPy ,On peut indexer
cet objet en utilisant un tableau Numpy.

>>>[Link]
array([1, 2,30, 0,15, 6])
>>>[Link][1:3]
array([2,30])
>>>[Link] #index
RangeIndex(start=0,stop=6,step=1)
Manipulation et analyse des données
• objet « Series » :
La structure de base pour les Pandas Series est un tableau NumPy ,On peut indexer
cet objet en utilisant un tableau Numpy.

>>> x = [Link]([1, 2, 30, 0, 15, 6], index=['a', 'b', 'c', 'd', 'e', 'f'])
>>> [Link]
Index(['a', 'b', 'c', 'd', 'e', 'f'], dtype='object')
>>> x
a 1
b 2
c 30
d 0
e 15
f 6
dtype: int64
Manipulation et analyse des données
• objet « Series » :

>>>s =[Link]([1,2,'anything','morestuff'])
>>>s
01
12
2 anything
3 morestuff
dtype:object
Manipulation et analyse des données
• objet « Series » :

>>>[Link]
RangeIndex(start=0,stop=4,step=1)
>>>s[0]
1
>>>s[:-1]
01
12
2 anything
dtype:object
>>>[Link] #Type Objet
dtype('O')
Manipulation et analyse des données
• objet « Series » :

s =[Link]([1,2,3],index=['a','b','cat',8])
Traceback (most recent call last):
File "<pyshell#32>", line 1, in <module>
s =[Link]([1,2,3],index=['a','b','cat',8])
Manipulation et analyse des données
• Séries Temporelles:

>>>dates=pd.date_range('20210101',periods=12)
>>>s=[Link](range(12),index=dates)
>>>s
2021-01-01 0
2021-01-02 1
2021-01-03 2
2021-01-04 3
2021-01-05 4
2021-01-06 5
2021-01-07 6
2021-01-08 7
2021-01-09 8
2021-01-10 9
2021-01-11 10
2021-01-12 11
Freq: D, dtype: int64
Manipulation et analyse des données
• Séries Temporelles:
Elles permettent d'effectuer des statistiques descriptives de base sur les données

>>>[Link]()
5.5
>>>[Link]()
3.605551275463989
Manipulation et analyse des données
• Séries Temporelles:
Elles permettent d'effectuer des statistiques descriptives de base sur les données

>>>[Link](by=lambda i:[Link]).count()
0 2
1 2
2 1
3 1
4 2
5 2
6 2
dtype: int64
Manipulation et analyse des données
• Séries Temporelles:
Elles permettent d'effectuer des statistiques descriptives de base sur les données

>>>x =[Link](range(5),index=[1,2,11,9,10])
>>>x
10
21
11 2
93
10 4
dtype:int64
Manipulation et analyse des données
• Séries Temporelles:
Elles permettent d'effectuer des statistiques descriptives de base sur les données
>>>grp=[Link](lambdai:i%2)
>>>grp.get_group(0)
21
10 4
dtype:int64
>>>grp.get_group(1)
10
11 2
93
dtype:int64
Manipulation et analyse des données
• Séries Temporelles:
Elles permettent d'effectuer des statistiques descriptives de base sur les données

>>>[Link]()#maxineachgroup
04
13
dtype:int64
Manipulation et analyse des données
• objet « DataFrame » :

>>>df=[Link]({'col1':[1,3,11,2],'col2':[9,23,0,2]})
>>>df
col1 col2
019
1 3 23
2 11 0
322
Manipulation et analyse des données
• objet « DataFrame » :

>>>[Link][:2,:2]#getsection
col1 col2
019
1 3 23
Manipulation et analyse des données
• objet « DataFrame » :
>>>df['col1']# indexing
01
13
2 11
32
Name:col1,dtype:int64
>>>df.col1#usedotnotation
01
13
2 11
32
Name:col1,dtype:int64
Manipulation et analyse des données
• objet « DataFrame » :

>>>[Link]()
col1 17
col2 34
dtype:int64
Manipulation et analyse des données
• objet « DataFrame » :

>>>df=[Link]({'col1':[1,1,0,0],'col2':[1,2,3,4]})
>>>df
col1 col2
011
112
203
304
Manipulation et analyse des données
• objet « DataFrame » :

>>>grp.get_group(0)
col1 col2
203
304
>>>grp.get_group(1)
col1 col2
011
112
Manipulation et analyse des données
• objet « DataFrame » :

>>>[Link]()
col2
col1
07
13
Manipulation et analyse des données
• objet « DataFrame » :

>>>df['sum_col']=[Link]('col1+col2')
>>>df
col1 col2 sum_col
0112
1123
2033
3044

>>>grp=[Link](['sum_col','col1'])
Manipulation et analyse des données
• objet « DataFrame » :

>>>res=[Link]()
>>>res
col2
sum_colcol1
211
303
12
404
Manipulation et analyse des données
• objet « DataFrame » :

>>>[Link]()
col2
col1 0 1
sum_col
2 NaN 1.0
3 3.0 2.0
4 4.0 NaN
Manipulation et analyse des données
• Charger les données :

>>>[Link]()
Manipulation et analyse des données
• Afficher le début du DataFrame :

>>>[Link]()
Manipulation et analyse des données
• Statistiques :

>>>[Link]()
Manipulation et analyse des données
• Eliminer certaines colonnes :

>>>[Link]([‘column1’,’column2’,...])
Manipulation et analyse des données
• Eliminer les lignes aux données manquantes :

>>>[Link](axis=0)
Manipulation et analyse des données
• Compter les répétitions :

>>>df.[‘column’].value_count()
Manipulation et analyse des données
• Analyser par goupe :

>>>[Link][‘column’]
Merci

Vous aimerez peut-être aussi