【发布时间】:2017-02-26 05:51:50
【问题描述】:
我正在研究以 COO 格式存储的稀疏矩阵。获取每行连续元素数的最快方法是什么。
例如考虑以下矩阵:
a = [[0,1,2,0],[1,0,0,2],[0,0,0,0],[1,0,1,0]]
它的首席运营官代表是
(0, 1) 1
(0, 2) 2
(1, 0) 1
(1, 3) 2
(3, 0) 1
(3, 2) 1
我需要结果为[1,2,0,2]。第一行包含两个位于附近的非零元素。因此它是一个组或集合。在第二行中,我们有两个非零元素,但它们不在附近,因此我们可以说它形成了两个组。第三行没有非零,因此没有组。第四行再次有两个非零,但由零隔开,因此我们将其视为两组。这就像每行的集群数。遍历行是一种选择,但前提是没有更快的解决方案。感谢您在这方面的任何帮助。
另一个简单的例子:考虑下面一行:
[1,2,3,0,0,0,2,0,0,8,7,6,0,0]
上面的行应该返回[3] sine,三组非零被零隔开。
【问题讨论】:
-
(1) 我看不懂这个例子。 (2) 如果您的稀疏矩阵是为它设计的,那么迭代行方法是完美的。所以先转换成csr_matrix(从coo转换效率很高!)
-
@sascha 它只是查找行中的组数。一组由连续的元素组成。我将更新问题以使其更清楚
标签: python python-2.7 matrix scipy sparse-matrix