Хитрость заключается в том, чтобы использовать 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 )