Я ожидал, что следующий код будет работать, но это не так.
import h5py
import numpy as np
with h5py.File('file.hdf5','w') as hf:
dt = h5py.special_dtype(vlen=str)
feature_names = np.array(['a', 'b', 'c'])
hf.create_dataset('feature names', data=feature_names, dtype=dt)
Я получаю сообщение об ошибке TypeError: No conversion path for dtype: dtype('<U1')
. Следующий код работает, но использование цикла for для копирования данных кажется мне немного неуклюжим. Есть ли более простой способ сделать это? Я бы предпочел иметь возможность передавать последовательность строк непосредственно в функцию create_dataset
.
import h5py
import numpy as np
with h5py.File('file.hdf5','w') as hf:
dt = h5py.special_dtype(vlen=str)
feature_names = np.array(['a', 'b', 'c'])
ds = hf.create_dataset('feature names', (len(feature_names),), dtype=dt)
for i in range(len(feature_names)):
ds[i] = feature_names[i]
Примечание: мой вопрос следует из этого ответа до Сохранение списка строк в наборе данных HDF5 из Python , но я не считаю его дубликатом этого вопроса.