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 :

Erreur "too many indices for array"


Sujet :

Calcul scientifique Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 13
    Points : 5
    Points
    5
    Par défaut Erreur "too many indices for array"
    Bonjour à tous,

    j'ai un petit problème avec mon code qui m'indique l'erreur du titre du post.

    Mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    import numpy as np
    import matplotlib.pyplot as plt
    from scipy import arange,ones,zeros
     
    data=np.loadtxt('C:\Users\XXX1.dat')
    datapon=np.loadtxt('C:\Users\XXX2.dat')
     
    b=zeros((64,1))
     
    for i in arange (64):
        b[i]=(data[i,0]*(datapon[i,0]/100))
        i=i+1
     
    print(b)
    En fait mes deux fichiers XXX1 et XXX2 sont tous les deux constitués d'une colonne avec 64 valeurs.

    Je voudrais multiplier la 1ere valeur du fichier 1 par la 1ere du fichier 2, puis la 2nd du fichier 1 par la 2nd du fichier 2, et ainsi de suite.

    Et stocker ces 64 produits dans b.


    Mais comme l'indique mon message, je n'y arrive pas. Help

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 281
    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 281
    Points : 36 768
    Points
    36 768
    Par défaut
    Salut,

    Citation Envoyé par Vertical001 Voir le message
    En fait mes deux fichiers XXX1 et XXX2 sont tous les deux constitués d'une colonne avec 64 valeurs.
    Si vos tableaux n'ont qu'une colonne, pourquoi écrire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        b[i]=(data[i,0]*(datapon[i,0]/100))
    Le message d'erreur "too many indices for array" ne dit rien de plus que çà.

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

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Merci wiztricks.

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    J'en ai un autre un peu plus compliqué :

    Désolé, je sollicite encore votre aide, là je sèche.

    J'ai deux tableaux : un (48,64) et un (64,1)

    Comment je fais pour multiplier : le 1er terme de la ligne 1 (tableau 1) par le 1er terme du tableau 2
    puis le 2e terme de la ligne 1 (tableau 1) par le 2e terme du tableau 2
    etc

    puis passer à la ligne 2 : le 1er terme de la ligne 2 (tableau 1) par le 1er terme du tableau 2
    puis le 2e terme de la ligne 2 (tableau 1) par le 2e terme du tableau 2
    etc

    Et ceci sur mes 48 lignes.


    Merci beaucoup.

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 281
    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 281
    Points : 36 768
    Points
    36 768
    Par défaut
    Salut,

    Citation Envoyé par Vertical001 Voir le message
    Désolé, je sollicite encore votre aide, là je sèche.
    Il n'y a pas de difficultés à écrire une double boucle "for" (quoi que dans ce cas là, ce n'est peut être pas nécessaire) *sauf* lorsqu'on débute.
    Et si vous voulez apprendre, il faut passer du temps à essayer de coder cela par vous même.
    L'important n'est pas tant le résultat mais la découverte des réactions du langage et ce que vous allez essayer pour comprendre, corriger,...
    A défaut de résultats, vous pourrez revenir ici avec du code montrant ce que vous avez essayé, une explication de votre approche, le(s) problème(s) rencontré(s),...

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

  6. #6
    Membre du Club

    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2015
    Messages : 19
    Points : 53
    Points
    53
    Par défaut
    Bonsoir,

    Je n'ai pas testé, mais il me semble que ça suffit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    import numpy as np
    x = np.random.random((48, 64))
    y = np.random.random((64, ))
    z = x[:] * y  #ton résultat

Discussions similaires

  1. Erreur du type "too many indices for array"
    Par scorpion291084 dans le forum Général Python
    Réponses: 2
    Dernier message: 27/09/2015, 17h14
  2. Erreur système : Too many open files
    Par AL1986 dans le forum Administration système
    Réponses: 3
    Dernier message: 28/03/2011, 22h10
  3. Erreur : invalid types «int[int]» for array subscript
    Par fabrice91 dans le forum Débuter
    Réponses: 9
    Dernier message: 01/10/2010, 16h00

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