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 :

Multiplication terme à terme de deux listes


Sujet :

Calcul scientifique Python

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 20
    Points : 18
    Points
    18
    Par défaut Multiplication terme à terme de deux listes
    Bonjour,
    en prenant deux listes a = [1,2,3] et b = [2,3,4], je souhaite réaliser une multiplication terme à terme, mais je ne trouve pas l'opérateur qui permet de faire cela, et me donner c = [2,6,12].
    Je dispose de NumPy et SciPy, connaissez-vous la fonction permettant de réaliser ce produit (pour ceux qui connaissent matlab, c'est le .* )

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    quick & dirty
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    import operator
    map(operator.mul, a, b)
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 20
    Points : 18
    Points
    18
    Par défaut
    Merci !
    OK pour le "quick" mais pourquoi "dirty" ?
    Il existe d'autres façons de le faire ?

    EDIT : Je viens de me rendre compte que cette fonction posait des problèmes.
    En effet, je souhaite faire des multiplication termes à terme de plusieurs listes, mais la fonction qui m'a été donné change le type de retour : elle me donne un objet de type "array".
    Si je veux faire le produit terme a terme de trois listes, ça pose des problèmes.
    N'existe pas une fonction de NumPy ou SciPy qui permette de faire cela ?

  4. #4
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Avec le Python de base, on peut faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    a = [1, 2, 3]
    b = [2, 3, 4]
    print [x*y for x, y in zip(a,b)]
    [2, 6, 12]
    Tyrtamos
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Vous avez compris le pourquoi du "dirty"
    Avec numpy, a * b fonctionne aussi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    import numpy
    v1 = numpy.array([1, 2, 3, 4])
    v2 = numpy.array([4, 3, 2, 1])
    # product
    print v1*v2 # [4 6 6 4]
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Citation Envoyé par Bebs7 Voir le message
    EDIT : Je viens de me rendre compte que cette fonction posait des problèmes.
    En effet, je souhaite faire des multiplication termes à terme de plusieurs listes, mais la fonction qui m'a été donné change le type de retour : elle me donne un objet de type "array".
    Si je veux faire le produit terme a terme de trois listes, ça pose des problèmes.
    N'existe pas une fonction de NumPy ou SciPy qui permette de faire cela ?
    Non, Numpy retourne son propre type, array. Mais c'est un type maintenant natif dans Python 3, donc je ne vois pas trop le souci

Discussions similaires

  1. Multiplication terme à terme en calcul symbolique?
    Par Jean Dumoncel dans le forum MATLAB
    Réponses: 11
    Dernier message: 15/06/2009, 17h06
  2. Réponses: 3
    Dernier message: 11/06/2009, 10h25
  3. addition multiplication terme à terme
    Par le_voisin dans le forum Boost
    Réponses: 3
    Dernier message: 02/03/2009, 18h42
  4. [PHP-JS] Deux listes multiples liées
    Par arti2004 dans le forum Langage
    Réponses: 4
    Dernier message: 05/07/2007, 20h57
  5. [FLASH MX2004] Drag and drop entre deux List
    Par aldo-tlse dans le forum Flash
    Réponses: 15
    Dernier message: 24/09/2005, 01h10

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