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 :

Centrer et réduire une matrice [Python 3.X]


Sujet :

Python

  1. #1
    Membre confirmé
    Homme Profil pro
    Consultant coût global
    Inscrit en
    Juillet 2011
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Consultant coût global
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2011
    Messages : 101
    Par défaut Centrer et réduire une matrice
    Bonjour,

    Dans un code utilisant la librairie Numpy, je dois standardiser les variables définies par les 10 colonnes d'une matrice. Cette opération consiste à retirer à chaque colonne sa moyenne puis à diviser par son écart type.

    La moyenne de chaque colonne est obtenue avec la fonction "mean" de Nympy et l'écart type avec la fonction "std".
    La matrice possède plusieurs milliers de lignes.

    Une solution consiste à boucler sur les colonnes et sur les lignes pour standardiser chaque valeurs.
    Existe-t-il une ou des fonctions qui permettent de traiter globalement chaque colonne sans avoir à boucler plusieurs dizaines de milliers de fois.

    Par exemple colonnes(j) = (colonne(j)–mean(j))/std(j)

    Merci pour vos conseils

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 677
    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 677
    Par défaut
    Salut,

    On part de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> ar = np.array([[1, 3, 5],[2,4,6]])
    >>> ar
    array([[1, 3, 5],
           [2, 4, 6]])
    La 2ème colonne a pour indice 1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> ar[:,1]
    array([3, 4])
    et si je veux faire une opération globale dessus:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> ar[:,1] *= 10
    >>> ar
    array([[ 1, 30,  5],
           [ 2, 40,  6]])
    >>>
    techniquement, ça s'appelle "slicing" et c'est largement documenté.

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

  3. #3
    Membre confirmé
    Homme Profil pro
    Consultant coût global
    Inscrit en
    Juillet 2011
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Consultant coût global
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2011
    Messages : 101
    Par défaut
    Merci

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

Discussions similaires

  1. "Réduire" une matrice
    Par Kazoo_fr dans le forum MATLAB
    Réponses: 6
    Dernier message: 15/04/2012, 23h51
  2. [Débutant] Centrer et réduire un objet d'une image
    Par dsryam dans le forum Images
    Réponses: 2
    Dernier message: 17/04/2010, 14h56
  3. Recherche des coefficients d'une matrice 3x3
    Par colorid dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 25/11/2004, 16h52
  4. Déclarer une matrice
    Par joy dans le forum C
    Réponses: 7
    Dernier message: 09/12/2002, 00h42
  5. comment réduire une image jpeg (taille x*y)
    Par don-diego dans le forum C
    Réponses: 4
    Dernier message: 14/07/2002, 20h06

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