を使用する場合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
圧縮自体を処理するのでしょうか?