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 :

tableau numpy et tableau 2d


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    1 124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 124
    Par défaut tableau numpy et tableau 2d
    Bonjour

    J'ai un souci avec une colone de tableau.

    Voici le 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
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    import numpy as np
    import matplotlib.pyplot as plt
     
     
    L = 183
    Ct = 3.0 * (10**(-4))
    OM = 0.05
    k2 =np.array([7, 6, 5, 4, 3, 2])
    xtab = np.array([12, 12.6, 14.2, 16.2, 19.8, 32.1])-10
     
    theta = (xtab/2*L)
     
    r1 = 3 * np.ones(6)
    r2 = k2 + 3
    r = r2 - r1
    F = (xtab*Ct)/(OM*2*L)
    f = (1/r**2)
     
     
    print("F", F)
     
    print()
    print()
    print("\t\t\tVérification de la loi de Coulomb (Distance)")
    print()
    print()
     
    #Tableau distance
     
    tableau = [k2, r2, xtab, theta, r1, r, f, F]
     
    bontableau = np.rot90(tableau, k=-1, axes=(1,0))
     
    tableauOk = np.flipud(bontableau)
     
    for i in range(len(tableauOk)):
        print()
        for j in range(len(tableauOk[i])):
            if isinstance(tableauOk[i][j], int):
                print("{:7d}".format(tableauOk[i][j]), end=" ")
            else:
                print("{:10.2f}".format(tableauOk[i][j]),end=" ")
    Voici ce qui s'affiche.



    Dans la dernière colonne. Il n'y a que des zéro qui s'affichent. je pense que c'est un souci dans la gestion de données entre la fonction F et la colonne.

    Comment puis je régler ce bug ?

    A bientôt

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 830
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

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

    Informations forums :
    Inscription : Février 2006
    Messages : 12 830
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par argon Voir le message
    Voici ce qui s'affiche.
    Ce n'est pas complet. Voici ce qui s'affiche avant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    F [3.27868852e-05 4.26229508e-05 6.88524590e-05 1.01639344e-04
     1.60655738e-04 3.62295082e-04]
    Citation Envoyé par argon Voir le message
    je pense que c'est un souci dans la gestion de données entre la fonction F et la colonne.
    Je pense moi que c'est un souci d'affichage sur 2 décimales d'un flottant tellement petit que ses deux premières décimales sont à 0.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    1 124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 124
    Par défaut
    Bonjour

    Je n'avais pas pensé à ça.

    Peut on bouger la virgule et jouer sur les puissances pour afficher plus de données dans cette colonne ?

    À bientôt

  4. #4
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 323
    Par défaut
    bonjour
    Citation Envoyé par argon Voir le message
    Peut on bouger la virgule et jouer sur les puissances pour afficher plus de données dans cette colonne ?
    pas compris, le code est de toi ? Tu peux faire toute sorte de conversion et/ou changer le format...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    # si pour une seule colonne
    # if j == 44:
    print("{:10.8f}".format(tableauOk[i][j] * 1),end=" ")
    voir print(f'{tableauOk[i][j]:<10.2} ', end="") (ici pas de zéro mais...), à toi de lire la doc sur le formatage

  5. #5
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 830
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

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

    Informations forums :
    Inscription : Février 2006
    Messages : 12 830
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par argon Voir le message
    Peut on bouger la virgule et jouer sur les puissances pour afficher plus de données dans cette colonne ?
    C'est toi qui dirige ton code. En plus, en informatique professionnelle, le "rendu" est une constituante comme une autre (autrement dit, l'affichage est souvent paramétrable => on peut décider de sortir à l'écran, vers un mail, vers une imprimante, etc)
    Tu as une donnée assez petite, à toi d'adapter ton format. Par exemple tu peux définir manuellement chaque format de tes données au lieu de tester "int/float"
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #!/usr/bin/env python3
    import numpy as np
     
    tab=(
    	{"data" : np.array([7, 6, 5, 4, 3, 2]), "format" : "-9d"},
    	{"data" : np.array([12, 12.6, 14.2, 16.2, 19.8, 32.1])-10, "format" : "9.2f"},
    )	# Pas besoin de liste quand un tuple suffit
     
    for t in tab:
    	for tt in t["data"]:
    		print("{:{}}".format(tt, t["format"]), end=' ')
    	print()
    # for

    Tu pourrais même descendre si besoin la granularité à chaque élément du tableau => tab=({"data" : 7, "format" : "-9d", "data" : 6.5, "format" : "9.2f", ...}).
    A toi de construire les fondations, le reste viendra tout seul.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  6. #6
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 323
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    au lieu de tester "int/float"
    En fait, ici le test est faux, car il n'y a que des float. Exite float(x).is_integer()

  7. #7
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 539
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 539
    Par défaut
    Tu peux multiplier F par 1E6 pour avoir son affichage en µ (comme ça semble être une unité physique, l'afficher en micro ne serait pas déconnant (juste le préciser éventuellement)

Discussions similaires

  1. Réponses: 3
    Dernier message: 22/06/2011, 10h20
  2. Copier une liste dans un tableau Numpy
    Par manaliac dans le forum Calcul scientifique
    Réponses: 1
    Dernier message: 17/09/2010, 10h56
  3. numpy tableau ajout
    Par medphy dans le forum Calcul scientifique
    Réponses: 2
    Dernier message: 17/12/2009, 18h17
  4. numPy-Calcul rapide d'un tableau de valeurs-Débutant
    Par rambc dans le forum Calcul scientifique
    Réponses: 1
    Dernier message: 07/04/2009, 19h19
  5. [NumPy ou symPy] Tableau de valeurs d'une fonction
    Par rambc dans le forum Calcul scientifique
    Réponses: 10
    Dernier message: 29/11/2008, 13h41

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