IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Problème de compréhension de syntaxe utilisant des booléens


Sujet :

Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Doctorant
    Inscrit en
    Février 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant
    Secteur : Service public

    Informations forums :
    Inscription : Février 2016
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Problème de compréhension de syntaxe utilisant des booléens
    Bonjour à tous,

    Je me prends la tête sur la modification d'un code depuis le début de l'aprem, ça avançait petit à petit mais là je tombe sur un os.

    Je ne comprends pas la syntaxe d'un petit bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    mask_0 = std_i < 1e-15
    mask_0[std_j < 1e-15] = True
    results[mask_0] = 1
    Ce code est tiré de la lib skimage et plus spécifiquement du code de texture.py, que j'essaie d'adapter à une application spécifique (peut être que je me suis lancé dans un truck trop complexe pour moi à mon niveau de compréhension d'ailleurs ^^).

    Ma question est juste de comprendre ce que fait la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mask_0[std_j < 1e-15] = True
    mask_0 est un booléen mis précédemment à Faux car ma valeur std_i est égale à 300 et quelques.
    Pour info, mon std_j est exactement égal à mon std_i.

    Quand j'avance ensuite mon débug après la ligne critique, j'obtiens l'erreur : TypeError: 'bool' object does not support item assignment.

    Voilà où j'en suis. Je ne sais pas si ça a un rapport avec le reste du programme, mais de mon point de vue ça n'a pas l'air, c'est pour ça que je pose ce point spécifique seulement.
    Je suis totalement perdu ^^ je ne comprends vraiment pas le sens de la syntaxe.

    Quelqu'un pourra-t-il me le détailler svp ?
    Avez vous besoin de plus d'infos ?

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 281
    Points : 36 768
    Points
    36 768
    Par défaut
    Salut,

    Citation Envoyé par Samoht74 Voir le message
    Ma question est juste de comprendre ce que fait la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mask_0[std_j < 1e-15] = True
    mask_0 est un booléen mis précédemment à Faux car ma valeur std_i est égale à 300 et quelques.
    Pour info, mon std_j est exactement égal à mon std_i.
    Ce sont des tableaux numpy.
    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> ar = np.array([1, 2, 3, 1, 2, 3, 1, 2, 3])
    >>> ar < 2
    array([ True, False, False,  True, False, False,  True, False, False], dtype=bool)
    >>>
    Donc on peut fabriquer un tableau de booléens qui seront vrais pour les valeurs < 2, puis mettre à vrai pour les valeurs = 3:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> m = ar < 2
    >>> m[ar == 3] = True
    >>> m
    array([ True, False,  True,  True, False,  True,  True, False,  True], dtype=bool)
    >>>
    C'est peu ou prou ce que fait votre code.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Réponses: 5
    Dernier message: 30/10/2014, 10h28
  2. Problème de méthodologie sur l'utilisation des classes
    Par maxime.tuck dans le forum Général Python
    Réponses: 4
    Dernier message: 29/11/2013, 23h39
  3. Réponses: 7
    Dernier message: 18/07/2009, 01h28
  4. problèmes de compréhension de syntaxes
    Par kitch18 dans le forum Langage
    Réponses: 2
    Dernier message: 21/01/2008, 09h43
  5. [SQL/ACCESS/VBA]problème de compréhension de syntaxe
    Par satch24 dans le forum VBA Access
    Réponses: 5
    Dernier message: 22/06/2007, 16h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo