В попытке провести обратный инжиниринг формата файла, я пришел к следующему минимальному примеру создания составного numpy типа данных и его сохранения в HDF5.Кажется, что в оригинальном файле хранятся наборы данных нижеуказанного типа.Однако, я не могу записать такие наборы данных в файл.
import numpy as np
import h5py
data = ("Many cats".encode(), np.linspace(0, 1, 20))
data_type = [('index', 'S' + str(len(data[0]))), ('values', '<f8', (20,))]
arr = np.array(data, dtype=data_type)
print(arr)
h5f = h5py.File("lol.h5", 'w')
dset = h5f.create_dataset("data", arr, dtype=data_type)
h5f.close()
Этот код вылетает с ошибкой
Traceback (последний вызов был последним): File«test.py», строка 13, в файле dset = h5f.create_dataset (файл «data», arr, dtype = data_type) «/opt/anaconda3/lib/python3.7/site-packages/h5py/_hl/group.py", строка 116, в файле create_dataset dsid = dataset.make_new_dset (файл self, shape, dtype, data, ** kwds)" /opt/anaconda3/lib/python3.7/site-packages/h5py/_hl/dataset.py ", строка 75, в make_new_dset shape = tuple (shape) TypeError: итерация по массиву 0-й
Как мне решить эту проблему?