gpt4 book ai didi

python - 序列化 `numpy.dtype` 对象 : human readable

转载 作者:太空宇宙 更新时间:2023-11-03 14:25:50 26 4
gpt4 key购买 nike

一些背景知识。我正在为 HDF5 数据库构建应用程序/架构,部分 API 能够在您首次构建 HDF5 文件时指定数据集的 dtype(以及形状的一部分),但不一定要编写这些数据集您在关闭文件并删除 File 对象的包装器之前指定。因此,我想将该数据保存在 HDF5 文件中,这样应用程序程序员就不必在每次打开文件进行写入时传递这些规范。我还希望能够支持这些数据集的任意 numpy.dtype(通过 h5py 库)。

除了酸洗之外,是否有标准/好的方法可以将 numpy dtype 对象序列化为纯文本?

我不想使用 pickling,因为它不是真正可读的,并且正在考虑更像 JSON 样式的格式。

例如对于这样的数据类型:

In [1]: dt
Out[1]: dtype([('one', '<i8'), ('two', '<f8')])

最佳答案

我的工作解决方案只是使用 JSON 字符串:

In [1]: dt = numpy.dtype([('one', np.int), ('two', np.float)])
In [2]: dt.descr
Out[2]: [('one', '<i8'), ('two', '<f8')]
In [3]: dt_str = json.dumps(dt.descr)
In [4]: dt_str
Out[4]: '[["one", "<i8"], ["two", "<f8"]]'

可以轻松读回并转换为 numpy.dtype:

In [5]: np.dtype([tuple(i) for i in json.loads(dt_str)])
Out[5]: dtype([('one', '<i8'), ('two', '<f8')])

关于python - 序列化 `numpy.dtype` 对象 : human readable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47641404/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com