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.

4 réponses

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