Détection d'un nombre avec numpy

Résolu
Alex -  
 Alex -
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.
A voir également:

4 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour,
on utilise souvent des boucles pour parcourir un tableau.
1
Alex
 
comme ceci?
for x in range(largeur):
    for y in range(hauteur):
        if table[x, y] == 1:
            pass
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Alex
 
c'est un exemple d'utilisation de boucles, en effet.
0
mamiemando Messages postés 33774 Date d'inscription   Statut Modérateur Dernière intervention   7 883
 
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
1
_Ritchi_ Messages postés 21333 Date d'inscription   Statut Contributeur Dernière intervention   6 104
 
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
0
Alex
 
merci! le problème était déjà résolu mais cette méthode est beaucoup mieux
0