繁体   English   中英

使用pytables,效率更高:scipy.sparse还是numpy密集矩阵?

[英]Using pytables, which is more efficient: scipy.sparse or numpy dense matrix?

当使用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会处理压缩本身?

从借用存储在numpy的HDF5(PyTables)稀疏矩阵 ,可以封送scipy.sparse使用其阵列分成pytables格式dataindicies ,和indptr属性,它们是三个常规numpy.ndarray对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM