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 :

Remplissage tableau multidimensionnel


Sujet :

Python

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

    Informations forums :
    Inscription : Mars 2012
    Messages : 10
    Points : 8
    Points
    8
    Par défaut Remplissage tableau multidimensionnel
    Bonjour à tous,

    Je cherche à obtenir la meilleure solution pour remplir un tableau au fur et à mesure que l'on lit différents fichiers.
    Dans chaque fichier 7 valeurs sont à récupérer et à insérer dans le tableau.
    les lignes du tableau correspondent donc à 7 différentes bandes (différentes longueurs d'ondes pour être plus clair) et et les colonnes au nombre de fichiers total.


    J'aimerais faire un truc dans ce genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for i in range(n_file):                  ici n_file = 500 fichiers
           for k in range(band_list):     ici band_list = 7
                 variable = variable[band_list[k]]
                 tab[k,i].append(variable)
    Auriez vous une solution pour améliorer ce bout de code, qui ne fonctionne pas d'ailleurs.
    J'ai aussi lu quelques articles sur numpy qui saurait gérer ça ?

    Merci beaucoup de votre aide
    Bonne fin de semaine

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Vous dites avoir 7 valeurs par fichier, mais vous ne précisez pas si les valeurs sont placées sur une seule ligne ou sur 7 lignes dans ce fichier => le traitement ne sera pas exactement le même.

    Comment sont nommés les fichiers ? Avec une racine et un index e.g. file0001.txt, file0002.txt, etc ? Les récupérer dans un dossier en particulier (dossier dédié) ?

    Souhaitez-vous indexer vos valeurs par bandes (par longueurs d'onde) ou est-ce qu'un simple index 0...6 suffit ?

    Vous préférez utiliser Python2 ou Python3 ?

    Commencez par éclaircir votre idée et le code suivra forcément.

    @+.
    Dernière modification par Invité ; 13/06/2014 à 00h18. Motif: Inutile de citer entièrement le message précédent

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

    Informations forums :
    Inscription : Mars 2012
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Salut Tarball69,

    Merci de ta réponse, et désolé pour le bout de code qui n'est pas bien passé.
    Je saurai pour la prochaine occasion!!

    Je ne suis pas rentré dans les détails car ca ferait bcp à dire
    Mais en gros, il s'agit de fichiers netcdf, nommé ainsi albedo_000.nc albedo_001.nc ..etc
    chaque fichier est composé de 2 dimensions, 1: band (111 bandes) et 2: time
    Enfait, récupérer les bonnes valeurs n'est pas un problème. Ce que j'aimerais faire c'est juste réussir à les ajouter dans un tableau avec une indexation simple.

    Penses tu qu'il existe une solution de ce style?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tab[k,i].append(variable)
    Est-ce la meilleure?

    Merci encore!
    Heureusement que vous êtes là pour des novices comme moi!

  4. #4
    Invité
    Invité(e)
    Par défaut
    Oui, numpy gère les tableaux multidimensionnels, mais pour le cas ici présent, il n'est peut-être pas utile de recourir à numpy, Python seul suffit amplement :

    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
    #!/usr/bin/python3
    # -*- coding: utf-8 -*-
     
    import glob
     
    def recuperer_donnees (fichier):
     
        liste_donnees = []
     
        # mettez ici le code permettant
        # de récupérer vos 7 valeurs à partir de fichier
        # et placez-les dans liste_donnees
     
        return liste_donnees
     
    # end def
     
    def ajouter_donnees (tableau, liste_donnees):
     
        for index, data in enumerate(liste_donnees):
     
            tableau[index].append(data)
     
        # end for
     
    # end def
     
    tableau = [[] for i in range(7)]
     
    liste_fichiers = glob.glob("albedo*.nc")
     
    for fichier in liste_fichiers:
     
        liste_donnees = recuperer_donnees(fichier)
     
        ajouter_donnees(tableau, liste_donnees)
     
    # end for
     
    print(tableau)
    C'est un peu algorithmique "scolaire", mais au moins ça fonctionnera OK, si vous implémentez le code d'extraction des 7 valeurs dans la fonction recuperer_donnees(fichier), avec le paramètre fichier le chemin / nom du fichier en cours d'examen.

    @+.
    Dernière modification par Invité ; 13/06/2014 à 00h17. Motif: Inutile de citer entièrement le message précédent

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

    Informations forums :
    Inscription : Mars 2012
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Bon bah voilà !!

    Super, merci beaucoup tarball, c'est tout à fait ce que je souhaitais faire.

    Merci beaucoup de ton aide!

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/11/2005, 23h36
  2. [vbexcel]Pb remplissage tableau
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 26/09/2005, 13h36
  3. Nombre de dimensions d'un tableau multidimensionnel
    Par Bruno75 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 08/07/2005, 10h03
  4. type de donnée tableau multidimensionnel
    Par opheliegomes dans le forum Débuter
    Réponses: 2
    Dernier message: 03/02/2005, 12h29
  5. [langage] tableau multidimensionnel
    Par totox17 dans le forum Langage
    Réponses: 3
    Dernier message: 03/12/2002, 15h58

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