python - 使用 h5py 在 HDF5 文件中自定义列名
问题描述
我有以下代码片段:
import h5py
import numpy
## Data set with shape (5, 5) and numpy array containing column names as string
data = numpy.random.random((5, 5))
column_names = numpy.array(["a", "b", "c", "d", "e"])
## Create file pointer
fp = h5py.File("data_set.HDF5", "w")
## Store data
fp["sub"] = data
## Close file
fp.close()
如何为HDF5 file
包含图中箭头所示的列添加名称?
解决方案
诀窍是使用 Numpy dtype 来定义字段/列名称,然后使用它来定义记录数组。您还可以混合变量类型(例如,如果您想在同一行混合整数、浮点数和字符串)。
修改示例如下:
import h5py
import numpy as np
## Data set with shape (5, 5) and list containing column names as string
data = np.random.rand(5, 5)
col_names = ["a", "b", "c", "d", "e"]
## Create file pointer
with h5py.File("data_set_2.HDF5", "w") as fp :
ds_dt = np.dtype( { 'names':col_names,
'formats':[ (float), (float), (float), (float), (float)] } )
rec_arr = np.rec.array(data,dtype=ds_dt)
## Store data
##fp["sub"] = data
ds1 = fp.create_dataset('sub', data=rec_arr )
推荐阅读
- odoo-14 - 在 odoo 14 销售点购买
- php - 在 laravel 中保存/更新一对多关系
- powerbi - 需要历史数据 + 刷新数据 (Power BI)
- php - 如何在laravel视图中通过'created_at'显示最后一个属性顺序
- c# - GetRequiredService 返回 null
- android - 如何使用 su 在 Android 中重新安装应用程序本身
- laravel - 为什么我在 laravel 8 日志中出现错误,但在浏览器中却没有
- apache-spark - 如果 kafka 流不存在,则停止 spark readstream 失败
- microchip - __SP_init 和 __SPLIM_init 在哪里定义?
- json - 在postgres中使用列名作为键和列作为值创建json数组