Accès aux éléments d'un tableau et itération avec Numpy

PythonPythonBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, nous allons apprendre à utiliser l'objet numpy.nditer pour itérer sur un tableau NumPy et accéder à ses éléments individuels. Nous allons également apprendre à modifier les éléments d'un tableau à l'aide du paramètre op_flags de l'objet nditer. Enfin, nous allons découvrir le broadcasting dans les tableaux NumPy à l'aide de l'objet nditer.

Conseils sur la machine virtuelle

Une fois le démarrage de la machine virtuelle terminé, cliquez dans le coin supérieur gauche pour basculer vers l'onglet Carnet de notes pour accéder au carnet Jupyter pour pratiquer.

Parfois, vous devrez peut-être attendre quelques secondes pour que le carnet Jupyter ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limitations du carnet Jupyter.

Si vous rencontrez des problèmes pendant l'apprentissage, n'hésitez pas à demander à Labby. Donnez votre feedback après la session, et nous réglerons rapidement le problème pour vous.

Créer un ndarray et l'itérer à l'aide de numpy.nditer

Dans cette étape, nous allons créer un tableau NumPy unidimensionnel à l'aide de la méthode arange(), puis l'itérer à l'aide de l'objet numpy.nditer.

import numpy as np

a = np.arange(0,40,5)

print ("Le tableau original est :")
print (a)
print ('\n')

## Afficher les éléments du tableau un par un
print ("Le tableau modifié est :")
for x in np.nditer(a):
    print(x)

Itérer sur la transposée d'un tableau

Dans cette étape, nous allons prendre un tableau NumPy bidimensionnel, trouver sa transposée et l'itérer à l'aide de l'objet nditer.

import numpy as np

a = np.array([[11,2,3,4],[29,4,15,6],[11,21,39,31]])
print("Le tableau est :")
print(a)

print("La transposée du tableau est :")
at = a.T
print(at)

print("Itération sur le tableau :")
for x in np.nditer(at):
    print(x, end=' ')

Itérer sur un tableau dans l'ordre C et dans l'ordre F

Dans cette étape, nous allons créer un tableau NumPy bidimensionnel, trouver sa transposée, puis l'itérer dans l'ordre C et dans l'ordre F à l'aide de l'objet nditer.

import numpy as np

a = np.array([[1,2,3,4],[8,9,5,6],[10,20,29,31]])
print("\nAffichage du tableau:\n")
print(a)

print("\nAffichage de la transposée du tableau:\n")
at = a.T
print(at)

print("\nItération sur la transposée du tableau dans l'ordre F:\n")
for x in np.nditer(at, order='F'):
    print(x, end=' ')

print("\nItération sur la transposée du tableau dans l'ordre C:\n")
for x in np.nditer(at, order='C'):
    print(x, end=' ')

Itérer sur plusieurs tableaux en utilisant le broadcasting

Dans cette étape, nous allons créer deux tableaux NumPy de dimensions différentes et les itérer en utilisant le broadcasting avec l'objet nditer.

import numpy as np

a = np.arange(0,60,5)
a = a.reshape(3,4)

print ('Le premier tableau :')
print (a)
print ('\n')

print ('Le deuxième tableau est')
b = np.array([1, 2, 3, 4], dtype = int)
print (b)
print ('\n' )

print ('Le tableau modifié est')
for x,y in np.nditer([a,b]):
    print ("%d:%d" %(x,y))

Modifier les valeurs d'un tableau à l'aide de op_flags

Dans cette étape, nous allons créer un tableau NumPy unidimensionnel, l'itérer à l'aide de l'objet nditer tout en configurant le paramètre op_flags sur 'lecture-écriture', puis modifier les éléments du tableau au fur et à mesure de l'itération.

import numpy as np

a = np.arange(0,50,6)
a = a.reshape(3,3)

print ('Le tableau original est :')
print (a)
print ('\n')

for x in np.nditer(a, op_flags=['readwrite']):
    x[...] = 2 + x

print ('Le tableau modifié est :')
print (a)

Sommaire

Dans ce laboratoire, nous avons appris à utiliser l'objet nditer dans NumPy pour itérer sur des tableaux, et à modifier les éléments d'un tableau pendant l'itération à l'aide du paramètre op_flags. Nous avons également appris sur le broadcasting dans les tableaux NumPy en utilisant l'objet nditer pour itérer simultanément sur plusieurs tableaux.