Existe uma vantagem de velocidade de análise ou uso de memória no uso do HDF5 para armazenamento em grandes matrizes (em vez de arquivos binários simples)?

Estou processando grandes matrizes 3D, que muitas vezes preciso dividir de várias maneiras para fazer uma variedade de análises de dados. Um "cubo" típico pode ter ~ 100 GB (e provavelmente aumentará no futuro)

Parece que o formato de arquivo recomendado típico para grandes conjuntos de dados em python é usar o HDF5 (h5py ou pytables). Minha pergunta é: existe algum benefício no uso da velocidade ou da memória ao usar o HDF5 para armazenar e analisar esses cubos e armazená-los em arquivos binários simples e binários? O HDF5 é mais apropriado para dados tabulares, em vez de matrizes grandes como as que estou trabalhando? Vejo que o HDF5 pode fornecer uma compactação agradável, mas estou mais interessado em processar velocidade e lidar com o estouro de memória.

Frequentemente, quero analisar apenas um grande subconjunto do cubo. Uma desvantagem de pytables e h5py é que, quando tomo uma fatia da matriz, sempre recupero uma matriz numpy, usando memória. No entanto, se eu dividir um mapa de memórias numpy de um arquivo binário plano, posso obter uma visualização, que mantém os dados no disco. Portanto, parece que posso analisar mais facilmente setores específicos dos meus dados sem sobrecarregar minha memória.

Eu explorei o pytables e o h5py e não vi o benefício de nenhum deles até agora para o meu propósito.

questionAnswers(1)

yourAnswerToTheQuestion