0% ont trouvé ce document utile (0 vote)
23 vues37 pages

Introduction aux tableaux NumPy en Python

Ce document présente une introduction à la bibliothèque NumPy en Python, qui est essentielle pour le calcul scientifique et le machine learning, en se concentrant sur la manipulation des tableaux unidimensionnels et bidimensionnels. Il couvre la création de tableaux, les opérations arithmétiques, le découpage, ainsi que les attributs et méthodes usuelles associés aux tableaux. Le document est structuré en plusieurs sections détaillant les fonctionnalités et applications de NumPy.

Transféré par

imechkene
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)
23 vues37 pages

Introduction aux tableaux NumPy en Python

Ce document présente une introduction à la bibliothèque NumPy en Python, qui est essentielle pour le calcul scientifique et le machine learning, en se concentrant sur la manipulation des tableaux unidimensionnels et bidimensionnels. Il couvre la création de tableaux, les opérations arithmétiques, le découpage, ainsi que les attributs et méthodes usuelles associés aux tableaux. Le document est structuré en plusieurs sections détaillant les fonctionnalités et applications de NumPy.

Transféré par

imechkene
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

Faculté des Sciences de Tunis

Leila Ben Othman


Deuxième année du cycle préparatoire intégré - MI2/PI2
Année universitaire: 2024 - 2025
Les tableaux en numpy
Plan

1 Introduction

2 Les tableaux unidimensionnels

3 Les tableaux bidimensionnels

4 Création de tableaux particuliers

5 Opérations arithmétiques et fonctions mathématiques sur les tableaux

6 Méthodes usuelles

7 Algèbre linéaire avec numpy


Introduction

NumPy
• NumPy est une bibliothèque python parmi les plus importantes pour
faire du calcul scientifique et du machine learning. Tous les autres
modules tels que scipy, matplotlib, pandas et scikit-learn se
basent sur le type ndarray de numpy.
• Le module numpy est un module PYTHON spécialisé dans la
manipulation des tableaux à n dimensions (ndarray), qui est un
objet extrêmement puissant. Dans le cadre de notre cours, on
s’intéressera aux tableaux à 1 et à 2 dimensions.
• Les tableaux numpy sont homogènes, c’est-à-dire constitués
d’éléments de même type.
• Site officiel de numpy: [Link]

Leila Ben Othman, FST 2024-2025 4 / 37


Introduction

Le type ndarray - N-dimensional array

Image en niveaux de gris (2D array) - Image couleur (3D array)

Leila Ben Othman, FST 2024-2025 5 / 37


Introduction

Exemple de tableaux ndarray


• Matrice:
 
0 0 0.003 0.868 0

 0 100 0.002 0.812 1 

 30.223 100 0.004 0.832 1 
29.104 100 0.004 0.814 1
• Vecteur colonne:  
9.515

 8.234 


 30.225 

 29.104 
27.340
• Vecteur ligne:

9.515 8.234 30.225 29.104 27.340

Leila Ben Othman, FST 2024-2025 6 / 37


Introduction

Le type ndarray - ndim/shape


Soit a un tableau (ndarray)
• [Link] =⇒ le nombre de dimensions du tableau.

• [Link] =⇒ un tuple composé du nombre d’éléments sur chaque


dimension.

Leila Ben Othman, FST 2024-2025 7 / 37


Introduction

NumPy - Slicing

Leila Ben Othman, FST 2024-2025 8 / 37


Les tableaux unidimensionnels

Création d’un tableau (1)

• Import du module numpy

import numpy as np
• Création d’un tableau à une dimension avec la fonction array
(Typage implicite)

> T=[Link]([1,2,3])
>T
array([1, 2, 3])
• L’objet crée par la fonction array est de type ndarray.

> type(T)
<class ’[Link]’>

Leila Ben Othman, FST 2024-2025 9 / 37


Les tableaux unidimensionnels

Création d’un tableau (2)

• Tous les éléments d’un tableau sont de même type. L’attribut dtype
(data type) permet de voir le type des éléments.

> [Link]
dtype(’int32’)
• Création d’un tableau avec un typage explicite en utilisant dtype

> T=[Link]([1,2,3],dtype=float)
>T
array([ 1., 2., 3.])
> [Link]
dtype(’float64’)
• Les principaux types sont : bool, int, float, complex

Leila Ben Othman, FST 2024-2025 10 / 37


Les tableaux unidimensionnels

Taille - Accès à un élément du tableau

• On calcule la taille d’un tableau T (le nombre d’éléments) à l’aide la


fonction len (len(T));

• On accède à chaque élément du tableau par son index:


• T [0]: premier élément de T
• T [len(T ) − 1]: dernier élément de T

• Lorsque l’index est négatif, le parcours est effectué à rebours à partir


de la fin:
• T [−1]: premier élément de T (de droite vers la gauche).
• T [−len(T )]: dernier élément de T (de droite vers la gauche).

Leila Ben Othman, FST 2024-2025 11 / 37


Les tableaux unidimensionnels

Attributs d’un tableau

• Le nombre de dimensions

>[Link]
1
• Le nombre d’éléments

> [Link]
3
• Le nombre d’éléments sur chaque dimension

> [Link]
(3,) # tuple: 3 éléments sur la première dimension

Leila Ben Othman, FST 2024-2025 12 / 37


Les tableaux unidimensionnels

Attributs d’un tableau

• Attention: Les attributs ndim, size et shape peuvent être


invoqués à la fois comme des attributs (caractéristiques) d’un
tableau et comme des fonctions du module numpy prenant un
tableau en paramètre.

• Par exemple pour l’attribut shape, on peut donc écrire aussi bien
[Link] que [Link](T).

Leila Ben Othman, FST 2024-2025 13 / 37


Les tableaux unidimensionnels

Découpage ou Slicing sur un tableau

• Comme pour les séquences, le module numpy permet le découpage


du tableau en tranches avec la syntaxe suivante T [debut : fin]

• T [debut : fin] désigne la tranche de T constituée des éléments dont


les index sont compris entre debut et fin − 1.

• Quand debut n’est spécifié, alors la tranche commencera du début


de T

• Quand fin n’est spécifié, alors la tranche finira à la fin de T

• La syntaxe T [debut : fin : pas] possède un troisième paramètre (par


défaut, égal à 1), indiquant le pas de sélection.

Leila Ben Othman, FST 2024-2025 14 / 37


Les tableaux bidimensionnels

Création d’une matrice (1)

• Création d’un tableau à deux dimensions (matrice) avec la fonction


array

> M=[Link]([[1,2,3],[4,5,6],[7,8,9],[10,11,12]])
>M
array([[ 1, 2, 3],
[ 4, 5, 6],
[ 7, 8, 9],
[10, 11, 12]])
• L’objet crée par la fonction array est toujours de type ndarray.

> type(M)
<class ’[Link]’>

Leila Ben Othman, FST 2024-2025 15 / 37


Les tableaux bidimensionnels

Taille - Accès à un élément/une ligne d’une matrice


• La fonction len(M) retourne le nombre de lignes de M.

• On accède à chaque élément de la matrice par son index ligne et


index colonne:
• M[i,j]: élément qui se trouve à la ligne i et à la colonne j.

• On peut récupérer toute la ligne i avec la syntaxe M[i]. Le résultat


est un tableau à une dimension.
• M[0]: première ligne de M.
• M[len(M)-1]: dernière ligne de M.

• Lorsque l’index est négatif, le parcours est effectué à rebours à partir


de la fin:
• M[-1]: dernière ligne de M.
• M[-len(M)]: première ligne de M.

Leila Ben Othman, FST 2024-2025 16 / 37


Les tableaux bidimensionnels

Taille - Accès à un élément/une ligne d’une matrice

> len(M) > M[-len(M)]


4 array([1, 2, 3])

> M[0,2] > M[-1]


3 array([10, 11, 12])

> M[2] > M[len(M)-1]


array([7, 8, 9]) array([10, 11, 12])

> M[0] > M[-1,-1]


array([1, 2, 3]) 12

Leila Ben Othman, FST 2024-2025 17 / 37


Les tableaux bidimensionnels

Attributs de la matrice

• Le nombre de dimensions

> [Link]
2
• Le nombre d’éléments

> [Link]
12
• Le nombre d’éléments sur chaque dimension: nombre de lignes,
nombres de colonnes

> [Link]
(4,3) # tuple: 4 lignes et 3 colonnes

Leila Ben Othman, FST 2024-2025 18 / 37


Les tableaux bidimensionnels

Découpage ou Slicing sur une matrice

>M=[Link]([[1,2,3,4,5,6,7,8],[9,10,11,12,14,15,16,17],
[18,19,20,21,22,23,24,25],[26,27,28,29,30,31,32,33]])
>M
array([[ 1, 2, 3, 4, 5, 6, 7, 8],
[ 9, 10, 11, 12, 14, 15, 16, 17],
[18, 19, 20, 21, 22, 23, 24, 25],
[26, 27, 28, 29, 30, 31, 32, 33]])

Lignes 1 à 3, colonnes 2 à 5 Lignes et colonnes paires


> M[1:4,2:6] > M[::2,::2]
array([[11, 12, 14, 15], array([[ 1, 3, 5, 7],
[20, 21, 22, 23], [18, 20, 22, 24]])
[28, 29, 30, 31]])

Leila Ben Othman, FST 2024-2025 19 / 37


Les tableaux bidimensionnels

Découpage ou Slicing sur une matrice

Lignes et colonnes impaires


> M[1::2,1::2]
array([[10, 12, 15, 17],
[27, 29, 31, 33]])

Trois premières lignes, deux premières colonnes


> M[:3,:2]
array([[ 1, 2],
[ 9, 10],
[18, 19]])

Leila Ben Othman, FST 2024-2025 20 / 37


Les tableaux bidimensionnels

Découpage ou Slicing sur une matrice

à partir de la ligne 2, à partir de la colonne 4


> M[2:,4:]
array([[22, 23, 24, 25],
[30, 31, 32, 33]])

on inverse l’ordre des colonnes


> M[:,::-1]
array([[ 8, 7, 6, 5, 4, 3, 2, 1],
[17, 16, 15, 14, 12, 11, 10, 9],
[25, 24, 23, 22, 21, 20, 19, 18],
[33, 32, 31, 30, 29, 28, 27, 26]])

Leila Ben Othman, FST 2024-2025 21 / 37


Les tableaux bidimensionnels

Découpage ou Slicing sur une matrice

on inverse l’ordre des lignes


>M[::-1,::] ou bien simplement M[::-1]
array([[26, 27, 28, 29, 30, 31, 32, 33],
[18, 19, 20, 21, 22, 23, 24, 25],
[ 9, 10, 11, 12, 14, 15, 16, 17],
[ 1, 2, 3, 4, 5, 6, 7, 8]])

on inverse l’ordre des lignes et l’ordre des colonnes


> M[::-1,::-1]
array([[33, 32, 31, 30, 29, 28, 27, 26],
[25, 24, 23, 22, 21, 20, 19, 18],
[17, 16, 15, 14, 12, 11, 10, 9],
[ 8, 7, 6, 5, 4, 3, 2, 1]])

Leila Ben Othman, FST 2024-2025 22 / 37


Les tableaux bidimensionnels

Accès à une colonne


• La syntaxe M[:,b] permet d’accéder à la colonne d’indice b. Le
résultat est un tableau à une dimension.
• De même, la syntaxe M[:,b:b+1] permet d’accéder à la colonne
d’indice b. Le résultat est un tableau à deux dimensions.

Accès à la colonne d’indice 3


> M[:,3]
array([ 4, 12, 21, 29])

Accès à la colonne d’indice 3


> M[:,3:4]
array([[ 4],
[12],
[21],
[29]])

Leila Ben Othman, FST 2024-2025 23 / 37


Création de tableaux particuliers

Création de tableaux particuliers

• Tableau d’une dimension de 5 valeurs aléatoires (par défaut, des


réels)

> [Link](5)
array([ 2.79206344e+178, 2.25315555e-316, 0.00000000e+000,
2.80858511e+178, 6.35862486e-321])

Leila Ben Othman, FST 2024-2025 24 / 37


Création de tableaux particuliers

Création de tableaux particuliers

• Tableau d’une dimension de 5 valeurs égales à 1.

> [Link](5)
array([ 1., 1., 1., 1., 1.])
> [Link](5,int)
array([1, 1, 1, 1, 1])

• Tableau d’une dimension de 5 valeurs égales à 0.

> [Link](5)
array([ 0., 0., 0., 0., 0.])

Leila Ben Othman, FST 2024-2025 25 / 37


Création de tableaux particuliers

Création de tableaux particuliers


• La fonction arange(d, f , h) permet de créer un tableau de valeurs de
l’intervalle [d, f [ avec un pas de h.
• Les paramètres d et h sont optionnels.

> [Link](10)
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

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

> [Link](1,10,2)
array([1, 3, 5, 7, 9])

Leila Ben Othman, FST 2024-2025 26 / 37


Création de tableaux particuliers

Création de tableaux particuliers

• La fonction linspace(a, b, n) permet de créer un tableau de n valeurs


régulièrement échelonnées de l’intervalle [a,b] (les bornes de
l’intervalle sont incluses). Par défaut, n est égale à 50.

> [Link](0,100,4)
array([ 0. , 33.33333333, 66.66666667, 100. ])

pour exclure la borne supérieure de l’intervalle:


> [Link](0,100,4,endpoint=False) array([ 0., 25., 50., 75.])

pour connaître la valeur du pas utilisé pour générer les éléments:


> [Link](0,100,4,retstep=True) (array([ 0. , 33.33333333,
66.66666667, 100. ]), 33.333333333333336)

Leila Ben Othman, FST 2024-2025 27 / 37


Création de tableaux particuliers

Création de matrices particulières

• Tableau de deux dimensions de valeurs aléatoires (2 lignes, 2


colonnes).

> [Link]((2,2))
array([[ 9.61395921e-293, 9.26242852e-293],
[ 9.08574574e-293, 6.35862486e-321]])

Leila Ben Othman, FST 2024-2025 28 / 37


Création de tableaux particuliers

Création de matrices particulières

• Tableau de deux dimensions dont les valeurs sont égales à 1 (2


lignes, 2 colonnes).

> [Link]((2,2))
array([[ 1., 1.],
[ 1., 1.]])

• Tableau de deux dimensions dont les valeurs sont égales à 0 (2


lignes, 2 colonnes).

> [Link]((2,2))
array([[ 0., 0.],
[ 0., 0.]])

Leila Ben Othman, FST 2024-2025 29 / 37


Création de tableaux particuliers

Création de matrices particulières

• La fonction identity (n) permet de créer la matrice identité d’ordre n.

> [Link](4)
array([[ 1., 0., 0., 0.],
[ 0., 1., 0., 0.],
[ 0., 0., 1., 0.],
[ 0., 0., 0., 1.]])

Leila Ben Othman, FST 2024-2025 30 / 37


Création de tableaux particuliers

Création de matrices particulières


• La fonction diag, permet de créer une matrice diagonale formée par
les coefficients passés en paramètres (sous forme de liste, de tuple
ou même de tableau).

> [Link]([1,2,3,4])
array([[1, 0, 0, 0],
[0, 2, 0, 0],
[0, 0, 3, 0],
[0, 0, 0, 4]])

> [Link]((1,2,3,4))
array([[1, 0, 0, 0],
[0, 2, 0, 0],
[0, 0, 3, 0],
[0, 0, 0, 4]])

Leila Ben Othman, FST 2024-2025 31 / 37


Opérations arithmétiques et fonctions mathématiques sur les tableaux

Opérations arithmétiques
Soient A et B deux tableaux numpy, les opérations mathématiques
suivantes sont disponibles:
• Addition: A + B additionne terme à terme les éléments de A et B
• Soustraction: A − B soustrait terme à terme les éléments de B à
ceux de A
• Multiplication: A ∗ B multiplie terme à terme les éléments de A et B
• Division: A/B quotients terme à terme des éléments de A par ceux
de B
• Puissance: A ∗ ∗B élève les éléments de A à la puissance les
éléments de B
NB: Toutes ces opérations sont également applicables avec un scalaire:
addition des éléments d’un tableau et un scalaire, multiplication des
éléments par un scalaire, etc.

Leila Ben Othman, FST 2024-2025 32 / 37


Opérations arithmétiques et fonctions mathématiques sur les tableaux

Fonctions mathématiques

• Toutes les fonctions mathématiques usuelles sont disponibles dans le


module numpy et restent applicables sur des tableaux à une ou deux
dimensions. Citons par exemple: les fonctions sin, cos, tan, log,
sqrt, exp, etc.

> T=[Link](-3*[Link],3*[Link],5)
>T
array([-9.42477796, -4.71238898, 0. , 4.71238898, 9.42477796])

> [Link](T)
array([ -3.67394040e-16, 1.00000000e+00,
0.00000000e+00,-1.00000000e+00, 3.67394040e-16])

Leila Ben Othman, FST 2024-2025 33 / 37


Méthodes usuelles

Méthodes usuelles

• [Link]() renvoie la somme des éléments de M.


• [Link]() renvoie le minimum des éléments de M.
• [Link]() renvoie le maximum es éléments de M.
NB:
• Quand le paramètre axis=0 est spécifié, la méthode [Link](axis=0)
(resp [Link](axis=0), [Link](axis=0)) retourne un tableau composé
respectivement de la somme, du min et du max des éléments de
chaque colonne.
• Quand le paramètre axis=1 est spécifié, la méthode [Link](axis=1)
(resp [Link](axis=1), [Link](axis=1)) retourne un tableau composé
respectivement de la somme, du min et du max des éléments de
chaque ligne.

Leila Ben Othman, FST 2024-2025 34 / 37


Méthodes usuelles

Méthodes usuelles

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

> [Link]()
21

> [Link](axis=0)
array([5, 7, 9], dtype=int32)

> [Link](axis=1)
array([ 6, 15], dtype=int32)

Leila Ben Othman, FST 2024-2025 35 / 37


Algèbre linéaire avec numpy

Produit matriciel et transposé


• La fonction produit matriciel est disponible directement sous numpy
sous le nom dot. De même pour la transposition de matrice
(transpose).

> A = [Link]([[1,2],[3,4]])
> B = [Link]([[2,0],[3,4]])
> [Link](A,B)
array([[ 8, 8],
[18, 16]])

>A
array([[1, 2],
[3, 4]])
> [Link](A)
array([[1, 3],
[2, 4]])
Leila Ben Othman, FST 2024-2025 36 / 37
Algèbre linéaire avec numpy

Le module linalg

• Afin d’utiliser d’autres méthode d’algèbre linéaire, il faut utiliser le


sous module linalg de numpy qu’il faudra importer avec la
commande: import [Link] as lng

Déterminent [Link](M)
Inverse [Link](M)
Vecteurs propres [Link](M)
Valeurs propres [Link](M)
Résolution d’un système linéaire [Link](A,B) : retourne le vecteur X
solution du système A*X=B

Leila Ben Othman, FST 2024-2025 37 / 37

Vous aimerez peut-être aussi