一种获取 python scipy 模块的 coo_matrix 中非零值计数的方法?

发布于 2024-12-01 23:58:09 字数 365 浏览 3 评论 0原文

我想到使用 coo_matrix.nonzero() ,它返回两个数组的元组,其中包含给定矩阵中非零条目的索引。文档中的示例指出:

>>> from scipy.sparse import coo_matrix
>>> A = coo_matrix([[1,2,0],[0,0,3],[4,0,5]])
>>> nonzero_entrys = A.nonzero()
(array([0, 0, 1, 2, 2]), array([0, 1, 2, 0, 2]))

然后我会执行类似 len(nonzero_entrys[0]) 的操作,但这看起来像是一种转移。我在文档中忽略了更好的方法吗?

I thought of using coo_matrix.nonzero() which returns a tuple of two arrays which contain the indices of the nonzero entrys in a given matrix. The example from the docs states:

>>> from scipy.sparse import coo_matrix
>>> A = coo_matrix([[1,2,0],[0,0,3],[4,0,5]])
>>> nonzero_entrys = A.nonzero()
(array([0, 0, 1, 2, 2]), array([0, 1, 2, 0, 2]))

Then I would do something like len(nonzero_entrys[0]) but this seem like a diversion. Is there a better way I have overlooked in the docs?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

戏蝶舞 2024-12-08 23:58:09

您可以使用 len(A.data) 代替。

You could use len(A.data) instead.

半透明的墙 2024-12-08 23:58:09

coo_matrix 对象有一个专门提供非零值的属性,称为 .nzz

作为示例,生成 5x5 识别矩阵。

sparse = scipy.sparse.coo_matrix(np.diag(np.ones(5)))
sparse.nnz
5

您可以通过执行 help(scipy.sparse.coo_matrix) 阅读有关它的更多信息并找到其他方便的属性

The coo_matrix object has an attribute specifically giving non-zero values, called .nzz .

As an example, generate an 5x5 identify matrix.

sparse = scipy.sparse.coo_matrix(np.diag(np.ones(5)))
sparse.nnz
5

You can read more about it and find other handy attributes by doing help(scipy.sparse.coo_matrix)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文