Альтернативным и недостаточно используемым способом хранения массивов numpy
является HDF5.Преимущества:
- Транспортабельность, то есть не специфичная для Python, например
pickle
- Возможность доступа к данным вне памяти и возможности разбиения на фрагменты для оптимизации
- Параметры сжатия для оптимизации производительности чтения или записи
Вот демонстрационная версия:
import h5py, numpy as np
x = np.arange(10)
y = np.array([100, 101, 102, 103, 104, 105, 106, 107])
z = {'X': x, 'Y': y}
with h5py.File('file.h5', 'w', libver='latest') as f: # use 'latest' for performance
for k, v in z.items():
f.create_dataset('dict/'+str(k), data=v)
with h5py.File('file.h5', 'r', libver='latest') as f:
x_read = f['dict']['X'][:] # [:] syntax extracts numpy array into memory
y_read = f['dict']['Y'][:]
print(x_read)
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])