如何用 NaN 初始化 PyTables 浮点数组?

How to initialise a PyTables float array with NaNs?

我想存储在 PyTables HDF5 table 中的所有值都是实数,这使得选择二维数组而不是常规 table 是合乎逻辑的。但是对于数组的许多单元格,该值可能不可用(稍后变得可用)并且唯一合理简单的方法来指示它似乎将 NaN 分配给单元格(你不能只把 None 放在那里,就我明白了)。

我已经通过以下方式创建了 table:

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))

但是生成的 table 被零 (0.0) 填充,而不是 NaN。

float('nan') 分配给新创建的 table 的单元格工作得很好,但是通过 atom=tables.FloatAtom(dflt=float('nan'))float('nan') 设置为默认值不是这样,所以我有手动初始化新创建的 tables。

如何解决这个问题?或者有更好的方法吗?

这是一个已知错误,在此处进行了解释——dflt 参数不执行任何操作:https://github.com/PyTables/PyTables/issues/423