将维度添加到 scipy 稀疏

Adding dimensions to scipy sparse

我想给稀疏矩阵增加一个维度。在 numpy 中,这只是一个 [:,None] 的问题。我尝试了 reshaperesize 但没有成功。

这是一些虚拟数据:

from scipy.sparse import csr_matrix

data = [1,2,3,4,5,6] 
col = [0,0,0,1,1,1] 
row = [0,1,2,0,1,2] 
a = csr_matrix((data, (row, col)))
a.reshape((3,2,1))

最后一行报错:ValueError: matrix shape must be two-dimensional。执行 resize 会给出错误 ValueError: shape must be a 2-tuple of positive integers.

在我的特殊情况下,我还需要将其重塑为 (3,1,2)。有什么想法吗?

scipy.sparse 只能处理二维数组。您可能想查看 pydata/sparse ,它看起来在遵循数组接口的同时处理 n 维稀疏数据。目前数组类型较少,会存在一些性能问题,正在积极开发中