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

时间:2017-09-18 01:00:40

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

我想要存储在PyTables HDF5表中的所有值都是实数,这使得在常规表上选择2D数组成为合乎逻辑的。但对于阵列的许多单元格而言,该值可能不可用(并且稍后可用)并且唯一合理简单的方式来指示这似乎将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')分配给新创建的表格的单元格工作正常,但通过float('nan')atom=tables.FloatAtom(dflt=float('nan'))设置为默认值并不是因为我必须初始化新创建的手动表。

这怎么可能修复?或者有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

这是一个已知的错误,在此解释 - resid1=np.array(B.rx2('residuals')) 参数不执行任何操作:https://github.com/PyTables/PyTables/issues/423