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 :

Vectorisation Boucle indexation


Sujet :

Python

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 32
    Points : 27
    Points
    27
    Par défaut Vectorisation Boucle indexation
    Bonjour.

    A partir d'un tableau 2d, je récupère dans une liste les index de certaines colonnes contenant 1.
    Bon le code fonctionne, mais serait 'il possible de " vectoriser " le processus avec Numpy ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    import numpy as np
     
    # TABLEAU Lignes // Colonnes
    lignes = 15
    colonnes = 10
    # Remplir Tableau(lignes,colonnes) Aleatoirement 0/1
    tbl1 = np.random.randint(2, size=(lignes,colonnes))
    print tbl1
     
    # Recuperation INDEX Colonne Ayant Valeur 1
    col = 1 # Colonne de test
    index=[]
    for a in range(lignes):
      if tbl1[a,col] == 1:
        index.append(a)
     
    print"======================"
    print index
    print"======================"
    print tbl1[:,col]

  2. #2
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2013
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2013
    Messages : 388
    Points : 692
    Points
    692
    Par défaut
    Salut,
    Il y a argwhere qui retourne numpy array :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    idx = np.argwhere([tbl1[:,col]==1])
    print idx
    print list(idx[:,1])
    soit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    [[ 0  1]
     [ 0  3]
     [ 0  7]
     [ 0 13]]
    [1, 3, 7, 13]

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 32
    Points : 27
    Points
    27
    Par défaut
    Hello

    Merci __dardanos__ pour la réponse et l'exemple de code.
    argwhere intéressante instruction.

    Petite Modif sur la version 2.2 python utilisé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    idx = np.argwhere(tbl1[0:,col]==1)
    print idx

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Vectorisation boucle for (simple et imbriquée)
    Par derzy971 dans le forum MATLAB
    Réponses: 3
    Dernier message: 30/11/2009, 17h42
  2. Rechercher un mot en boucle et inserer un signet indexé
    Par ouskel'n'or dans le forum Contribuez
    Réponses: 0
    Dernier message: 14/09/2007, 13h53
  3. [Smarty] Récupérer l'index d'une boucle
    Par Mister Nono dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 19/03/2007, 19h01
  4. [struts]valeur de l'index de boucle
    Par GreenJay dans le forum Struts 1
    Réponses: 6
    Dernier message: 08/11/2005, 13h20
  5. [Vb.net] Indexé un objet crée dans une boucle
    Par picpic dans le forum Windows Forms
    Réponses: 10
    Dernier message: 17/12/2003, 15h37

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