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

Calcul scientifique Python Discussion :

Numpy - Modifier valeurs sous condition


Sujet :

Calcul scientifique Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2014
    Messages : 11
    Points : 8
    Points
    8
    Par défaut Numpy - Modifier valeurs sous condition
    Bonjour,

    J'ai un tableau numpy, disons par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    a=np.array([[0,1,2,4],[4,3,6,8],[9,5,7,2],[8,9,8,5],[0,5,3,8]])
    Je veux rajouter une 5e colonne qui ait pour valeurs soit la col 1 si celle-ci est inférieure à la col 0, soit la colonne 0 si la condition n'est pas respectée.
    Avec des booléens, si la condition est respectée, on a : qui retourne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    array([False,  True, False,  True], dtype=bool)
    e sais insérer une 5e col :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    np.hstack((a,np.zeros((5,1))))
    Question: comment faire pour remplacer les valeurs de la 5e col pour parvenir à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    array([[0, 1, 2, 4, 0],
           [4, 3, 6, 8, 3],
           [9, 5, 7, 2, 5],
           [8, 9, 8, 5, 8],
           [0, 5, 3, 8, 0]])
    De préférence en évitant les boucles (comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for i in range(5):
    	a[i][4]=a[i][1] if a[i][1]<a[i][0] else a[i][0]
    D'avance, merci
    Dominique

  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,
    Avec where par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    >>> a = np.array([[0,1,2,4],[4,3,6,8],[9,5,7,2],[8,9,8,5],[0,5,3,8]])
    >>> col = np.where(a[:, 1] < a[:, 0], a[:, 1], 0).reshape(-1, 1)
    >>> np.hstack((a, col))
    array([[0, 1, 2, 4, 0],
           [4, 3, 6, 8, 3],
           [9, 5, 7, 2, 5],
           [8, 9, 8, 5, 0],
           [0, 5, 3, 8, 0]])
    >>>

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2014
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Salut Dardanos,

    Merci beaucoup !!!
    C'est exactement ce que je voulais.
    Je vais enfin un peu mieux maîtriser Numpy, qui gagne à être connu.

    Dominique

  4. #4
    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
    J'avais mal lu la consigne. Il y a plus simple avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    col = np.minimum(a[:, 0], a[:, 1]).reshape(-1, 1)

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2014
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Pas grave !
    Ce que je voulais, c'est comprendre mieux le principe ...
    Merci beaucoup

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

Discussions similaires

  1. Somme des valeurs sous condition
    Par ons1402 dans le forum Excel
    Réponses: 6
    Dernier message: 13/09/2012, 14h40
  2. [AC-2007] Etats ACCESS, affichage d'une valeur sous condition
    Par Maryy dans le forum IHM
    Réponses: 3
    Dernier message: 13/01/2012, 10h35
  3. [AC-2003] Récup d'une valeur sous condition
    Par louzz dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 07/11/2011, 11h39
  4. Réponses: 8
    Dernier message: 22/08/2011, 23h50
  5. Transposition plages de valeurs sous condition
    Par Guizmoninou dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/06/2011, 11h03

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