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 :

écriture décimale et numpy


Sujet :

Calcul scientifique Python

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 11
    Points : 7
    Points
    7
    Par défaut écriture décimale et numpy
    Bonsoir,

    mon problème est le suivant. Je crée un tableau à l'aide du module numpy, que je remplis ligne par ligne de flottants. Quand je finis par un affichage du tableau, celui-ci affiche des coefficients tous mis sous forme d'écriture scientifique.
    Le résultat est inesthétique.
    Ma première colonne est formée d'entiers naturels, donc vous imaginez aisément que je ne suis pas content du résultat.
    Autre amélioration souhaitée :
    j'aimerais rajouter une ligne (la première) qui contienne des chaînes de caractère. J'imagine qu'il faut alors ne plus utiliser numpy, qui dans mon cas n'est pas obligatoire.

    Je ne suis pas à l'aise avec les tableaux !

    Merci à tous ceux qui voudront bien aider le novice. Je peux envoyer en MP mon programme.

  2. #2
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 823
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 823
    Points : 7 119
    Points
    7 119
    Par défaut
    Pour créer des tableaux avec numpy on peut spécifier le type des valeurs qu'on ajoutera.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> array = np.array([], float)
    >>> array
    array([], dtype=float64)
    On peut transformer des tableaux pour des listes, mais on en perd toute son efficacité, car ensuite vous ne travailler qu'avec des listes, plus des tableaux made in numpy...

    Je pense qu'il y a une erreur de conception à ce niveau, mais sait-on jamais, une proposition tout de même...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> type(list(array))
    <type 'list'>
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par fred1599 Voir le message
    Pour créer des tableaux avec numpy on peut spécifier le type des valeurs qu'on ajoutera.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> array = np.array([], float)
    >>> array
    array([], dtype=float64)
    On peut transformer des tableaux pour des listes, mais on en perd toute son efficacité, car ensuite vous ne travailler qu'avec des listes, plus des tableaux made in numpy...

    Je pense qu'il y a une erreur de conception à ce niveau, mais sait-on jamais, une proposition tout de même...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> type(list(array))
    <type 'list'>
    Tout à fait d'accord, je dois mal m'y prendre puisque l'affichage est particulièrement inapproprié. J'obtiens ceci :
    [[ 0.00000000e+00 1.00000000e+04 0.00000000e+00 0.00000000e+00]
    [ 1.00000000e+00 9.01564912e+03 3.50000000e+01 9.84350884e+02]
    ...]

    Une liste de listes me semble pourtant également maladroit.
    Je vous ai envoyé en MP mon programme pour voir ce qui peut être corrigé. Je ne pense pas qu'il y ait grand chose à corriger pourtant.

  4. #4
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 823
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 823
    Points : 7 119
    Points
    7 119
    Par défaut
    Tout à fait pas grand chose

    Rajouter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    np.set_printoptions(precision=3)
    np.set_printoptions(suppress=True)
    avant votre print(T).

    Bonne continuation...
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Je vous ai répondu en MP pour vous remercier. J'ai amélioré mon programme initial. L'affichage est grandement amélioré. Merci à vous !

  6. #6
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2013
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2013
    Messages : 388
    Points : 692
    Points
    692
    Par défaut
    Salut,
    Une autre piste serait d'utiliser l'écriture formatée dans une chaine :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    >>> import numpy as np
    >>> a_list = [(0, 1e4, 0), (33, 9.01564912e+03, 9.84350884e+36)]
    >>> dt = np.dtype( [ ('id', np.int), ('start', np.float), ('stop', np.float) ] )
    >>> arr = np.array( a_list, dtype = dt )
    >>> print( arr )
    [(0, 10000.0, 0.0) (33, 9015.64912, 9.84350884e+36)]
    >>> print( "\n".join( "{:5.2g} {:0=8.2f} {:10.4e}".format(*x) for x in arr ) )
        0 10000.00 0.0000e+00
       33 09015.65 9.8435e+36
    >>>

Discussions similaires

  1. Réponses: 12
    Dernier message: 29/01/2024, 15h32
  2. type décimal et écriture scientifique
    Par Jasmine80 dans le forum Requêtes
    Réponses: 8
    Dernier message: 06/03/2009, 15h32
  3. Requete avec des décimales
    Par Sandrine75 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 27/06/2003, 10h18
  4. [Kylix] Simplifications de l'écriture Kylix/Pascal"
    Par Mr Vincent KLEIN dans le forum EDI
    Réponses: 1
    Dernier message: 11/03/2003, 11h07
  5. Réponses: 1
    Dernier message: 06/03/2003, 11h57

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