Détection d'un nombre avec numpy [Résolu]

Signaler
-
Messages postés
29878
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
9 juin 2021
-
Bonjour, je voudrais savoir comment détecter un nombre/texte dans un tableau numpy. voici un exemple: je créée un tableau (2dimension 5x, 5y) remplis de zéros et je donne le chiffre 1 à la case 3x 3y . voici le code:
table = numpy.zeros((5, 5))
table[3, 3] = 1

je voudrais maintenant savoir si le tableau possède le chiffre 1, si oui je soustrais de 3 toutes les cases. le problème, c'est que je ne connais pas la méthode pour détecter le chiffre.
je voudrais donc savoir comment le détecter et si possible, le localiser.

3 réponses

Messages postés
15962
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
9 juin 2021
866
bonjour,
on utilise souvent des boucles pour parcourir un tableau.
comme ceci?
for x in range(largeur):
    for y in range(hauteur):
        if table[x, y] == 1:
            pass
Messages postés
15962
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
9 juin 2021
866 > Alex
c'est un exemple d'utilisation de boucles, en effet.
Messages postés
20360
Date d'inscription
samedi 17 mars 2007
Statut
Contributeur
Dernière intervention
9 juin 2021
5 629
Bonjour,

Regarde ce cours numpy et en particulier l'exemple 5 qui parle de boucle For: https://www.cours-gratuit.com/tutoriel-python/tutoriel-python-manipuler-les-tableaux-en-python

Ritchi
Messages postés
29878
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
9 juin 2021
7 120
Bonjour,

La manière la plus simple d'écrire ton programme est :

import numpy as np

def update_table(table):
    if 1 in table:
        table += 3

table1 = np.zeros((5, 5))
table1[3, 3] = 1
update_table(table1)
print(table1)


Il est important d'éviter les boucles en
numpy
si tu veux que ton code soit performant. Donc typiquement, il faut mieux faire réaliser par
numpy
les opérations matricielles (ici, ajout d'un scalaire) plutôt que d'écrire une boucle à la main.

Bonne chance