Копирование в h5py очень медленное

В настоящее время я добавляю массив h5py, определив массив как:

f = h5py.File(batch_path,'w')
data = f.create_dataset('data_set',(525600,1300),dtype=np.float32)

и добавляя к нему массивы как:

for index,file in enumerate(files):
    df = pd.read_csv(file)
    result = np.array(list(map(lambda x: float(x.split(';')[1]),df.as_matrix()[:,0])))
    data[:,index] = result[:]

Однако последний шаг (data[:,index] = result[:]) занимает невероятное количество времени. Что здесь не так?


person Erik    schedule 09.03.2018    source источник
comment
Я видел, как неуместное разбиение на фрагменты сильно влияет на производительность чтения и записи. Если вы знаете, какие запросы нехватки памяти вы будете выполнять в своем наборе данных HDF5, вы можете выбрать соответствующий размер фрагмента. Подробнее см. в документах по фрагментации h5py.   -  person jpp    schedule 09.03.2018
comment
Любая разница, если вы сохраните набор (1300,525600), повторяя 1-е измерение.   -  person hpaulj    schedule 09.03.2018
comment
1) Используйте фрагментацию. Например, stackoverflow.com/a/48405220/4045774 2) Взгляните также на Простейшую форму причудливой нарезки. Это также окажет заметное влияние на производительность.   -  person max9111    schedule 20.03.2018