Одновременная индексация полей и фрагмента с использованием `h5py`

#python #hdf5 #h5py

#python #hdf5 #h5py

Вопрос:

Задан файл H5Py следующего типа

 In [41]: d.shape
Out[41]: (37450461,)

In [42]: d.dtype 
Out[42]: dtype([('transaction', '<i8'), ('sender', '<i8'), ('recipient', '<i8'),
                ('timestamp', '<i8'), ('value', '<f8')])
 

Я хотел бы выделить несколько полей всего за несколько записей. Я ищу что-то вроде следующего:

 In [43]: d[['timestamp', 'value'], :5]
 

К сожалению, это вызывает ошибку. Я могу разбить запрос на несколько частей, и это работает:

 In [46]: d[:5][['timestamp', 'value']]
 

Но это неэффективно.

Вопрос

Есть ли какой-либо способ эффективно выбрать несколько полей и несколько записей из структурированного массива, хранящегося в HDF5, используя h5py ?

Ответ №1:

Итак, я понял свой ответ, когда писал вопрос

 >>> d['timestamp', 'value', :5]