【问题标题】:How to initialise a PyTables float array with NaNs?如何使用 NaN 初始化 PyTables 浮点数组?
【发布时间】:2018-02-26 10:57:02
【问题描述】:

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

我通过以下方式创建了表格:

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

但是结果表被零填充 (0.0),而不是 NaN。

float('nan') 分配给新创建的表的单元格可以正常工作,但通过atom=tables.FloatAtom(dflt=float('nan'))float('nan') 设置为默认值则不行,所以我必须手动初始化新创建的表。

这怎么可能解决?或者有没有更好的办法?

【问题讨论】:

    标签: arrays python-3.x nan hdf5 pytables


    【解决方案1】:

    这是一个已知的错误,在这里解释——dflt 参数什么都不做:https://github.com/PyTables/PyTables/issues/423

    【讨论】:

      猜你喜欢
      • 2010-11-05
      • 1970-01-01
      • 2014-05-09
      • 2016-03-22
      • 1970-01-01
      • 2012-09-29
      • 1970-01-01
      • 2019-01-09
      • 1970-01-01
      相关资源
      最近更新 更多