如何用 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
我想存储在 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