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

Bibliothèques tierces Python Discussion :

numpy réduire d'une dimension après sommation des valeurs la composant


Sujet :

Bibliothèques tierces Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Octobre 2016
    Messages : 4
    Points : 5
    Points
    5
    Par défaut numpy réduire d'une dimension après sommation des valeurs la composant
    Bonjour,

    Avec numy, je souhaite réduire mon array qui a un shape de (240,320,3) à un shape de (240,320) en ayant au passage sommé la 3° dimension.
    Avec un for on y arrive très bien mais ca prend trop de temps. J'imagine que numpy peut faire ca autrement mais je sèche un peu...

    Donc comment remplacer le code suivant (avec a.shape = (240,320,3)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    b = np.zeros(shape=(240,320)).astype(np.int)
    for i in range(240):
         for j in range(320):
              b[i,j] = a[i,j,...].sum()
    Par un code plus rapide à l'execution ?

    Si vous avez une piste je suis preneur...

    bonne fin de semaine
    Ludovic

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Octobre 2016
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Bon en approfondissant la doc numpy https://docs.scipy.org/doc/numpy/ref...y.ufunc.reduce

    J'ai trouvé mon bonheur
    Je remplacer le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    b = np.zeros(shape=(240,320)).astype(np.int)
    for i in range(240):
         for j in range(320):
              b[i,j] = a[i,j,...].sum()
    par celui là

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    b = np.add.reduce(a, axis=2,keepdims=False)
    Je gagne 3 secondes (sur mon script entier : 4,8s pour la boucle for, contre 1,8s pour le second code).

    Je peux me coucher maintenant...
    Ludovic

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 17/07/2012, 14h31
  2. [AC-2003] Requête de sommation des valeur suivant des critères dans une autre table
    Par s.rais dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 01/06/2010, 19h53
  3. Réponses: 4
    Dernier message: 31/05/2010, 13h39
  4. cocher une case en fonction des valeurs sur plusieurs plages
    Par flyfranky dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 15/11/2007, 10h20
  5. Boucler sur une table pour renommer des valeurs
    Par webwhisky dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 03/01/2006, 14h19

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