• Aucun résultat trouvé

I. Les tableaux de Numpy

N/A
N/A
Protected

Academic year: 2022

Partager "I. Les tableaux de Numpy"

Copied!
2
0
0

Texte intégral

(1)

http://alexandre.boisseau.free.fr/Prive/WWW/Info/PTSI/tableaux2.pdf

17

Tableaux à 2 dimensions, images

I. Les tableaux de Numpy

¦ On rencontre souvent des données qui se représentent naturellement par des tableaux à 2 dimensions (matrices, images). On pourrait utiliser des listes de listes mais le module numpypropose une structure de données adaptées : la structurearray.

¦ Cette structure permet de regrouper dans un tableau des éléments de même type (en généralint,floatoucomplex). Ce tableau peut avoir plusieurs dimensions mais on rencon- trera uniquement deux cas : des tableaux à 1 dimension (analogue des vecteurs en mathé- matiques) ou 2 dimensions (analogue des matrices en mathématiques).

>>> import numpy as np

>>> A = np.array([[1,2,3,4],

... [5,6,7,8],

... [9,0,0,0]])

>>> print(A)

[[1 2 3 4]

[5 6 7 8]

[9 0 0 0]]

>>> print(A[1,2])

7

>>> print(A[:,1])

[2 6 0]

>>> print(A[2,:])

[9 0 0 0]

A: j

0 1 2 3

0 1 2 3 4

i 1 5 6 7 8

2 9 0 0 0

>>> (n,m) = A.shape

>>> print(n,m)

3 4

B Dans unarray(contrairement aux listes) tous les éléments doivent être du même type, en généralintoufloat;

B = np.zeros((2,3)) print(B)

[[ 0. 0. 0.]

[ 0. 0. 0.]]

C = np.random.randint(0,6,(2,3)) print(C)

[[3 3 5]

[3 4 1]]

(2)

II. Application : traitement d’images

¦ On dispose d’un tableauA de taillen×mreprésentant une image en niveaux de gris : chaque coefficient de A est un nombre entier compris entre 0 (noir) et 255 (blanc).

¦ Pour éclaircir A, on définit un nouveau tableau E avec E[i,j]=p

A[i,j]. Pour que les coefficients deErestent entiers et compris entre 0 et 255 on pose en faitE[i,j]=¥

16p

A[i,j]¦ .

(n,m) = A.shape E = np.zeros((n,m))

for i in range(0,n): # 0<=i<=n-1 for j in range(0,m): # 0<=j<=m-1 E[i,j] = int(16*A[i,j]**0.5)

III. Calculs mathématiques sur les tableaux

¦ Le module NUMPYpropose des fonctions mathématiques analogues à celles du module mathmais qui s’appliquent aux tableaux coefficient par coefficient. Exemple :

A = np.array([[0,1],[2,4]]) E = np.sqrt(A)

print(E)

[[ 0. 1. ]

[ 1.41421356 2. ]]

Le traitement d’image précédent pouvait donc s’écrire simplement : E = np.floor(16*np.sqrt(A))

¦ On dispose ainsi des fonctionsnp.exp,np.log,np.cos, etc. On peut également réa- liser des opérations mathématiques « coefficient par coefficient » :

B = A+1 print(B)

[[1 2]

[3 5]]

C = A**2 print(C)

[[ 0 1]

[ 4 16]]

D = 2*A print(D) [[0 2]

[4 8]]

Références

Documents relatifs

Pour tout mouvement de rotation autour d'un axe fixe (et en choisissant le centre de l’axe comme origine du système de référence), le vecteur vitesse d’un objet est

Si donc, on veut diminuer le nombre de variables de façon à ne représenter un tableau que par un seul paramètre, il conviendra de déterminer ce paramètre de telle sorte que

Deux espaces dont les métriques ont mêmes coefficients en un point et mêmes dérivées de ces coefficients sont dits osculateurs en ce point.. Cette notion ne s’applique pas aux

S1[:,3] renverra le quatrième élément dans la deuxième dimension pour chaque valeur de l’indice de la première dimension (c'est-à-dire, la quatrième colonne du tableau vu comme

[r]

• peuvent être traités comme 2 problèmes séparés Le problème du mouvement plan se ramène à 2 problèmes de mouvement rectiligne simultanés. Exemple: souris

fait toujours un mouvement circulaire, mais avec une vitesse dont la grandeur varie. Pour parvenir à étudier ce phénomène, on sépare l’accélération en deux composantes. La

La pratique des opérateurs à l'aide de l'analyse en composantes principales est décrite au paragraphe 3 où des remarques sont faites à propos des méthodes d'analyse (INDSCAL