У меня есть очень большой файл данных (массив 1000 на 1400000), который содержит целые числа 0, 1, 2 и 4. Загрузка этих больших данных в массив numpy с использованием h5py занимает очень много времени, потому что моя память (4 ГБ) не может вместить столько и программа использует пространство подкачки. Поскольку в данных всего 4 числа, я хочу использовать 8-битный целочисленный массив. В настоящее время я загружаю данные и после этого преобразовываю их в 8-битный массив int.
with h5py.File("largedata", 'r') as f:
variables = f.items()
# extract all data
for name, data in variables:
# If DataSet pull the associated Data
if type(data) is h5py.Dataset:
value = data.value
if(name == 'foo'):
# convert to 8 bit int
nparray = np.array(value, dtype=np.int8)
Можно ли загрузить данные непосредственно в 8-битный массив целых чисел, чтобы сэкономить память при загрузке?
data.value.astype(np.int8)
- person hpaulj   schedule 23.02.2017