Comment itérer les colonnes dans Numpy

Comment itérer les colonnes dans Numpy
Dans cet article, nous étudierons comment itérer les colonnes du tableau Numpy. Nous verrons toutes les méthodes de base de cela. Nous verrons également des méthodes d'itération avancées comme la méthode de l'objet NDiter.

Méthode 1: Utilisation pour la boucle

Dans cette méthode, il y aura le tableau 1-D (dimensionnel) avec l'aide de la boucle FOR. Ceci est juste une manière similaire aux autres langages de programmation C, C ++, Python, etc.

importNumpyasnp
Arr = np.Arange (12)
Forvalinarr:
imprimer (val, end = ")

Sortir:

0 1 2 3 4 5 6 7 8 9 10 11

Ligne 1: Nous importons la bibliothèque Numpy en tant que NP. Afin que nous puissions utiliser cet espace de noms (NP) au lieu du nom complet Numpy.

Ligne 2: Nous avons créé un tableau de 12 éléments qui ressemble ci-dessous:

Array ([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])

Ligne 3 à 4: Nous utilisons maintenant une boucle pour itérer chaque élément du tableau et imprimer cette valeur d'élément.

Méthode 2: Utilisation de LOOP

Dans cette méthode, il y aura le tableau 1-D (dimensionnel) à l'aide de la boucle while.

importNumpyasnp
Arr = np.Arange (12)
i = 0
whilearr [i] imprimer (arr [i])
i = i + 1
si (i == arr.taille):
casser

Sortir:

0
1
2
3
4
5
6
7
8
9
dix
11

Ligne 4 à 8: Dans cette boucle, la boucle continue jusqu'à la taille du tableau (arr. la taille) est inférieure à celle de l'arr [i] car, comme nous le savons, la dernière valeur d'élément sera de 11 et la taille du tableau est de 12. Si la condition est vraie, imprimez cet élément et incrément la valeur d'itération (i) par 1. Si le nombre de valeurs d'itération est égal à la taille du tableau, alors la rupture appellera et quittera la boucle. L'ARR.La taille renvoie le nombre d'éléments dans le tableau.

Méthode 3: itération d'un tableau bidimensionnel

Pour itérer le tableau bidimensionnel, nous avons besoin de la boucle imbriquée. Mais si nous utilisons le single pour la boucle, alors nous itré sur la ligne uniquement.

Comprenons cela avec un exemple.

Arr = np.Arange (12).Reshape (4,3)
Pour Row Inarr:
Imprimer (ligne)

Sortir:

[0 1 2]
[3 4 5]
[6 7 8]
[9 10 11]

Ligne 2 à 3: Nous avons obtenu la sortie en ligne car, avec l'aide de la boucle unique, nous n'avons pas pu itérer chaque cellule du tableau 2D.

Utilisation de la boucle imbriquée.

Arr = np.Arange (12).Reshape (4,3)
Pour Row Inarr:
pour la cellule dans Row:
imprimer (cellule, end = '\ t')
print ("\ n")

Sortir:

0 1 2
3 4 5
6 7 8
9 10 11

Ligne 2 à 5: Dans le programme ci-dessus, nous utilisons deux boucles pour itérer un tableau 2D. La première boucle prend la valeur de ligne de l'ARR, et la boucle suivante accède à tous les éléments de ce tableau de ligne et imprime à l'écran comme indiqué dans la sortie.

Méthode 4: Utilisation de la méthode d'aplatissement

Une autre méthode est la méthode aplatie. La méthode aplatie convertit le tableau 2D en un tableau unique. Nous n'avons pas besoin de deux pour les boucles pour itérer le tableau 2D si nous utilisons la méthode d'aplatissement.

Arr = np.Arange (12).Reshape (4,3)
pour cellule inarr.aplatir():
imprimer (cellule, end = ")

Sortir:

0 1 2 3 4 5 6 7 8 9 10 11

Ligne 2 à 3: La méthode Flateten () a converti le tableau 2D en un tableau 1D, et nous l'itèrez comme la même manière que le tableau 1D. Ici, nous n'avons pas besoin d'utiliser deux pour Loop.

Méthode 5: Utilisation de l'objet Nditer

Le Numpy fournit également une méthode supplémentaire pour itérer le tableau 2D. Cette méthode est appelée la méthode nditer. Dans l'exemple précédent, nous pouvons également essayer avec la méthode nditer comme indiqué ci-dessous:

Arr = np.Arange (12).Reshape (4,3)
pour Cell inp.nditer (arr):
imprimer (cellule, end = ")

Sortir:

0 1 2 3 4 5 6 7 8 9 10 11

Ligne 2 à 3: Nous passons notre tableau à la méthode nditer (), et maintenant nous pouvons accéder à chaque élément comme le fait la méthode Flatten ().

Ordonnance d'itération

Nous pouvons également contrôler la méthode d'accès du nditer par un autre paramètre appelé ordre. Si nous spécifions l'ordre comme C, alors le nditer accède aux éléments horizontaux, et si nous spécifions l'ordre comme F, il accédera aux éléments verticalement. Comprenons cela avec un exemple de chaque commande.

Commander comme c:

# C itération de commande
Arr = np.Arange (12).Reshape (4,3)
pour Cell inp.nditer (arr, ordonnance = 'c'):
imprimer (cellule, end = ")

Sortir:

0 1 2 3 4 5 6 7 8 9 10 11

Si, nous imprimons le Arr uniquement, nous obtenons la sortie comme donnant ci-dessous:

Array ([[0, 1, 2],
[3, 4, 5],
[6, 7, 8],
[9, 10, 11]])

Maintenant, comme nous utilisons la boucle nditer avec l'ordre comme c. Donc, il accédera aux éléments horizontalement. Donc, si nous voyons dans la sortie du tableau ci-dessus, nos valeurs doivent être 0,1,2, alors 3, 4, 5, etc. Notre résultat est donc également dans la même séquence, ce qui montre que l'ordre C fonctionne horizontalement.

Commander comme f:

# F Itération de commande
Arr = np.Arange (12).Reshape (4,3)
pour Cell inp.nditer (arr, ordonnance = 'f'):
imprimer (cellule, end = ")

Sortir:

0 3 6 9 1 4 7 10 2 5 8 11

Si, nous imprimons le Arr uniquement, nous obtenons la sortie comme donnant ci-dessous:

Array ([[0, 1, 2],
[3, 4, 5],
[6, 7, 8],
[9, 10, 11]])

Maintenant, comme nous utilisons la boucle nditer avec l'ordre comme f. Donc, il accédera aux éléments verticalement. Donc, si nous voyons dans la sortie du tableau ci-dessus, nos valeurs doivent être 0,3,6,9, alors 1, 4, 7,10, etc. Notre résultat est donc également dans la même séquence, ce qui montre que l'ordre F fonctionne verticalement.

Méthode 6: Modification des valeurs du tableau Numpy lors de l'utilisation de Nditer

Par défaut, le Nditer traite les éléments du tableau comme en lecture seule, et nous ne pouvons pas le modifier. Si nous essayons de le faire, le Numpy soulèvera une erreur.

Mais, si nous voulons modifier les valeurs du tableau Numpy, alors nous devons utiliser un autre paramètre appelé op_flags = ['readwrite'].

Comprenons cela avec un exemple:

pour Cell inp.nditer (arr):
Cell […] = Cell * 2

Sortir:

---------------------------------------------------------------------------
ValueError Traceback (dernier appel dernier)
dans
1 pour cellule innp.nditer (arr):
----> 2 cellule […] = cellule * 2
ValueError: la destination d'affectation est en lecture seule

Avec op_flags = ['readwrite'] paramètre.

pour Cell inp.nditer (arr, op_flags = ['readwrite']):
Cell […] = Cell-3
Art

Ouput:

Array ([[- 3, -2, -1],
[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])

Conclusion:

Donc, dans cet article, nous avons étudié toutes les méthodes pour itérer le tableau Numpy. La meilleure méthode est nditer. Cette méthode Nditer est plus avancée pour gérer les éléments de tableau Numpy. Ici, dans cet article, tous les concepts de base seront clairs, et vous pouvez également consulter des méthodes plus avancées de l'itération de réduction comme Nditer comme. Ce sont les méthodes telles que les itérations de réduction, qui sont les techniques pour gérer les éléments de tableau Numpy sous différentes formes.

Le code de cet article est disponible sur le lien ci-dessous:

https: // github.com / shekharpandey89 / numpy-columns-iteations-méthods