Использование pytables, что более эффективно: scipy.sparse или плотная матрица numpy?

Когда используешьpytablesнет поддержки (насколько я могу судить) дляscipy.sparse матричные форматы, поэтому для хранения матрицы мне нужно выполнить какое-то преобразование, например,

def store_sparse_matrix(self):
    grp1 = self.getFileHandle().createGroup(self.getGroup(), 'M')
    self.getFileHandle().createArray(grp1, 'data', M.tocsr().data)
    self.getFileHandle().createArray(grp1, 'indptr', M.tocsr().indptr)
    self.getFileHandle().createArray(grp1, 'indices', M.tocsr().indices)

def get_sparse_matrix(self):
    return sparse.csr_matrix((self.getGroup().M.data, self.getGroup().M.indices, self.getGroup().M.indptr))

Беда в том, чтоget_sparse Функция занимает некоторое время (чтение с диска), и, если я правильно понимаю, также требует, чтобы данные помещались в память.

Единственный другой вариант, кажется, конвертировать матрицу в плотный формат (numpy array), а затем использоватьpytables как обычно. Однако это кажется довольно неэффективным, хотя я полагаю,pytables будет иметь дело с самим сжатием?

Ответы на вопрос(1)

Ваш ответ на вопрос