2017-09-18 2 views
0

Toutes les valeurs que je veux stocker dans une table PyTables HDF5 sont des nombres réels, ce qui rend logique le choix d'un tableau 2D sur une table ordinaire. Mais pour de nombreuses cellules du tableau, la valeur peut être indisponible (et devenir disponible plus tard) et la seule façon raisonnablement simple d'indiquer cela semble assigner NaN à la cellule (vous ne pouvez pas mettre None là, d'après ce que je comprends).Comment initialiser une matrice flottante PyTables avec des NaN?

J'ai créer la table de la façon suivante:

with tables.open_file(file_full_name, 'a') as file: 
    table = table_file.create_array(where=table_file.root, 
            name='main', 
            atom=tables.FloatAtom(dflt=float('nan')), 
            shape=(table_length, table_width)) 

Mais la table résultante est rempli avec des zéros (0.0), pas avec NaN.

Attribution float('nan') à une cellule de la table nouvellement créée fonctionne très bien, mais la mise en float('nan') être la valeur par défaut via atom=tables.FloatAtom(dflt=float('nan')) ne le fait pas je dois initialiser les tables nouvellement créées manuellement.

Comment ça peut-être être fixé? Ou y a-t-il un meilleur moyen, peut-être?

Répondre