+ Répondre à la discussion Actualité déjà publiée
  1. #1
    Rédacteur/Modérateur

    Avatar de deusyss
    Homme Profil pro
    Expert Python
    Inscrit en
    mars 2010
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Expert Python
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mars 2010
    Messages : 1 617
    Points : 7 813
    Points
    7 813

    Par défaut Python et le format HDF5

    Bonjour à tous,

    Je vous propose un tutoriel pour apprendre à manipuler le format HDF5 en programmation Python.

    Lors de toute création de logiciel, se pose à un moment donné, la sauvegarde des données manipulées.

    Dans un précédent article, je vous avais exposé un comparatif INI / JSON. Outre ce format, nous avions évoqué également le XML. Des formats différents, standards ou maisons, il en existe un nombre incalculable.

    Concernant le traitement et la manipulation de données numériques massives, l'un d'entre eux se trouve être très utilisé en informatique scientifique : le format HDF5.

    C'est ce format que je vous invite ici à découvrir.
    Bonne lecture à tous.


    Retrouvez les meilleurs cours et tutoriels pour apprendre la programmation Python
    "La connaissance appartient à tout le monde" (Film Antitrust)

    Tout le nécessaire pour Python:
    *News/Accueil *Cours/tutoriels *FAQ
    *Forums *Outils dédiés *Mon espace personnel avec mes Articles, Cours et Tutoriels

  2. #2
    Expert confirmé Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    novembre 2010
    Messages
    2 140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : novembre 2010
    Messages : 2 140
    Points : 5 804
    Points
    5 804

    Par défaut

    salut,

    je me demandais, dans quelle mesure c'est utilisé ce format ? tu marques que c'est "très utilisé en informatique scientifique" mais des quelques recherches que j'ai effectué la plupart du temps les datasets sont fournis à la va-comme-jte-pousse dans un tarball ou un zip sous forme de fichier texte à parser soi-même, je veux dire est-ce qu'il s'agit d'un format "incontournable" ou qui relève des bonnes pratiques ou simplement un truc cool qui devrait théoriquement être beaucoup plus utilisé qu'il ne l'est etc. ?
    Avant donc que d'écrire, apprenez à penser.
    Selon que notre idée est plus ou moins obscure, l'expression la suit, ou moins nette, ou plus pure.
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément.
                                                        - Nicolas Boileau, L'Art poétique

  3. #3
    Rédacteur/Modérateur

    Avatar de deusyss
    Homme Profil pro
    Expert Python
    Inscrit en
    mars 2010
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Expert Python
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mars 2010
    Messages : 1 617
    Points : 7 813
    Points
    7 813

    Par défaut

    Très bonne question.

    Il s'agit de la dernière solution, a savoir quelque chose de très pratique qui devrait être bien plus utilisé dès qu'on manipule et qu'on désire stocker des données numériques en masse. Ceci dit, mon expérience professionnelle m'a effectivement démontré une méconnaissance de ce format. On n'utilise pas ce qu'on ignore exister
    "La connaissance appartient à tout le monde" (Film Antitrust)

    Tout le nécessaire pour Python:
    *News/Accueil *Cours/tutoriels *FAQ
    *Forums *Outils dédiés *Mon espace personnel avec mes Articles, Cours et Tutoriels

  4. #4
    Modérateur

    Homme Profil pro
    Architecte technique
    Inscrit en
    juin 2008
    Messages
    10 011
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2008
    Messages : 10 011
    Points : 16 342
    Points
    16 342

    Par défaut

    Citation Envoyé par BufferBob Voir le message
    Je veux dire est-ce qu'il s'agit d'un format "incontournable" ou qui relève des bonnes pratiques ou simplement un truc cool qui devrait théoriquement être beaucoup plus utilisé qu'il ne l'est etc. ?
    La structure hiérarchique d'un système de fichiers standard est appropriée pour la plupart des applications.... Et ce qu'on fait avec HDF5 peut être fait avec un système de fichiers standard.
    Là ou HDF5 devient intéressant, c'est lorsqu'on travaille sur de grandes quantités de données éparpillées dans de multiples "fichiers" du côté des performances, de la portabilité et des facilités d'utilisation depuis différents outils.

    Mais c'est bien de savoir que çà existe même si les applications qui devraient/pourraient en profiter sont en nombre réduit.

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

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur C++
    Inscrit en
    avril 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2011
    Messages : 19
    Points : 22
    Points
    22

    Par défaut

    Le format HDF5 peut être utilisé par certains fabricants de microscopes et autres instruments de mesure de ce genre pour stocker les données acquises (par exemple des données hyperspectrales). Delmic a développé le logiciel Odemis qui utilise h5py : https://github.com/delmic/odemis/blo...dataio/hdf5.py.

  6. #6
    Membre averti
    Homme Profil pro
    ValueError
    Inscrit en
    avril 2016
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ValueError

    Informations forums :
    Inscription : avril 2016
    Messages : 264
    Points : 374
    Points
    374

    Par défaut

    Question sans doute idiote, mais mise à part la portabilité (et encore), quels sont les avantages par rapport à un sgbdr ? Et les inconvénients.
    Si tant soit peu que les deux soient comparables.

    Comme ça, je dirais une manipulation plus facile, le langage sql étant très complexe, mais pas sûr.

    En fait toutes les manipulations que tu montres ressemblent un peu à ce qu'on peut faire avec un sgdbr robuste, enfin, si j'ai bien saisi.

  7. #7
    Membre averti

    Inscrit en
    décembre 2009
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : décembre 2009
    Messages : 137
    Points : 337
    Points
    337

    Par défaut

    Salut,

    Il faudrait peut être préciser que la librairie C h5 n'est pas ré-entrante (même pour un accès en lecture à des fichiers différents...), et que le seul moyen de l'utiliser en multi thread c'est de la compiler en mode thread safe ce qui ne fait qu'utiliser un gros lock global qui pourrit bien évidemment les performances.
    Pour ma part, je l'utilise au boulot car, comme indiqué plus haut, c'est assez rependu dans l'informatique scientifique à cause de bonne performances en mode écriture . Ceci dit, et à mon avis, c'est à éviter pour toute autres applications.

    MG

  8. #8
    Expert éminent Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    décembre 2012
    Messages
    2 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : décembre 2012
    Messages : 2 310
    Points : 6 433
    Points
    6 433

    Par défaut

    Bonjour,
    Citation Envoyé par kmedghaith Voir le message
    Salut,

    Il faudrait peut être préciser que la librairie C h5 n'est pas ré-entrante (même pour un accès en lecture à des fichiers différents...), et que le seul moyen de l'utiliser en multi thread c'est de la compiler en mode thread safe ce qui ne fait qu'utiliser un gros lock global qui pourrit bien évidemment les performances.
    Pour ma part, je l'utilise au boulot car, comme indiqué plus haut, c'est assez rependu dans l'informatique scientifique à cause de bonne performances en mode écriture . Ceci dit, et à mon avis, c'est à éviter pour toute autres applications.

    MG
    Si tu es sur de ton fait, je trouve dommage que que cette lib ne tienne pas ces engagements, car l'une des raisons de hdf5 est justement de retirer ces limitations présentes en hdf4...
    Cordialement.

  9. #9
    Membre averti

    Inscrit en
    décembre 2009
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : décembre 2009
    Messages : 137
    Points : 337
    Points
    337

    Par défaut

    Citation Envoyé par disedorgue Voir le message
    Bonjour,


    Si tu es sur de ton fait, je trouve dommage que que cette lib ne tienne pas ces engagements, car l'une des raisons de hdf5 est justement de retirer ces limitations présentes en hdf4...
    Oui

    https://support.hdfgroup.org/HDF5/faq/threadsafe.html

Discussions similaires

  1. [Article] Python et l'agrégation d'outils
    Par Djug dans le forum Général Python
    Réponses: 0
    Dernier message: 04/01/2011, 09h43

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