配列、テンソル状の数値データを保存するのに便利は HDF5. 一緒に文字列の配列を保存したい時もある。
Python3 で文字列は UTF8 でエンコーディングされていると仮定する(Python2 は別)dtype=str
の np.array
では保存できないので注意、
import h5py
a = np.array(['hello', 'world'],
dtype=h5py.special_dtype(vlen=str))
with h5py.File('try_string.h5', 'w') as f:
f['s'] = a
try_string.h5
は任意のファイル名、s
は任意のデータ名。
読み込む場合はいつもどおり
with h5py.File('try_string.h5', 'r') as f:
b = f['s'][:]
type(b), type(b[0]) # => (numpy.ndarray, str)