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 fonction polyfit erreur


Sujet :

Calcul scientifique Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2018
    Messages : 18
    Points : 18
    Points
    18
    Par défaut Numpy fonction polyfit erreur
    Bien le bonjour,

    Je tente d'apprendre la programmation avec le langage python. Dans ce cadre je cherche à utiliser la fonction polyfit du module numpy.
    Voici donc le bout de programme que je rédige, le fichier importer contient 2 colonne, une première avec des positions et une autres avec des temps correspondant. Vitesse constante donc polynôme d'ordre 1.
    Le problème est le suivant, lors de l'exécution du programme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    import matplotlib.pyplot as plt
    import numpy as np
     
    lst = np.load('./s5/S05E02_lin.npy')
    print(lst)
     
    d = lst[:,:1]
     
    t = lst[:,1:2]
     
    p = np.polyfit(d, t, 1)
    print(d)

    je reçoit une erreur :

    TypeError                                 Traceback (most recent call last)
    <ipython-input-45-8808556a59bc> in <module>()
         10 print(d)
         11 
    ---> 12 p = np.polyfit(d, t, 1)
         13 
         14 fp = np.poly1d(p)
    
    ~/anaconda3/lib/python3.7/site-packages/numpy/lib/polynomial.py in polyfit(x, y, deg, rcond, full, w, cov)
        546         raise ValueError("expected deg >= 0")
        547     if x.ndim != 1:
    --> 548         raise TypeError("expected 1D vector for x")
        549     if x.size == 0:
        550         raise TypeError("expected non-empty vector for x")
    
    TypeError: expected 1D vector for x
    Le problème semble venir du slicing ou du loading, mais je ne comprend pas comment faire pour le résoudre,
    Merci d'avance pour votre aide, bien cordialement.
    Hell-bananaz

  2. #2
    Membre éprouvé

    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    654
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 654
    Points : 1 150
    Points
    1 150
    Par défaut
    Salut.

    Vous devriez utiliser les balises codes pour plus de lisibilité.

    Cela étant dit, vous avez vu juste. Le problème vient du slicing. Le message d'erreur indique que le premier paramètre de polyfit (), ici x, est un array 2D au lieu d'être un array 1D. Regardez la différence entre:
    Et:
    Dans le premier cas de figure d est un vecteur colonne (2D) et dans l'autre une liste (1D).
    Vous pouvez constater cette différence en printant d et/ou en regardant ce que vaut d.shape

    Ju

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2018
    Messages : 18
    Points : 18
    Points
    18
    Par défaut
    Super, merci beaucoup
    Effectivement, je maîtrise encore mal le slicing, je vais travailler ça!

    Encore merci, et bonne journée !

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

Discussions similaires

  1. [VB6] Fonction d'erreur
    Par Ribéry dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 25/07/2006, 16h49
  2. fonction checkTest : erreur de syntaxe
    Par MmoulinexX dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 14/06/2006, 10h29
  3. submit form dans fonction JScript, Erreur :(
    Par mbk-w dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/05/2006, 12h23
  4. fonction récursive: erreur
    Par calla29 dans le forum Débuter
    Réponses: 3
    Dernier message: 16/05/2006, 11h51
  5. [POO] Formulaire HTML + fonction JS = Erreur
    Par bdaboah dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 23/11/2004, 21h59

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