gpt4 book ai didi

python - 稀疏矩阵的 Scipy.sparse 测试对对角矩阵返回 False。为什么?

转载 作者:太空宇宙 更新时间:2023-11-03 14:25:12 25 4
gpt4 key购买 nike

我正在学习如何使用 Scipy.sparse。我尝试的第一件事是检查对角矩阵的稀疏性。然而,Scipy 声称它并不稀疏。这是正确的行为吗?

以下代码返回“False”:

import numpy as np
import scipy.sparse as sps
A = np.diag(range(1000))
print sps.issparse(A)

最佳答案

issparse 不会检查矩阵的密度是否小于某个任意数,它会检查参数是否是 spmatrix 的实例。

np.diag(range(1000)) 返回一个标准的 ndarray:

>>> type(A)
<type 'numpy.ndarray'>

您可以通过多种方式从中创建稀疏矩阵。随机选择一个:

>>> sps.coo_matrix(A)
<1000x1000 sparse matrix of type '<type 'numpy.int32'>'
with 999 stored elements in COOrdinate format>
>>> m = sps.coo_matrix(A)
>>> sps.issparse(m)
True

但再次注意,issparse 不关心对象的密度,只关心它是否是特定稀疏矩阵类型的实例。例如:

>>> m2 = sps.coo_matrix(np.ones((1000,1000)))
>>> m2
<1000x1000 sparse matrix of type '<type 'numpy.float64'>'
with 1000000 stored elements in COOrdinate format>
>>> sps.issparse(m2)
True

关于python - 稀疏矩阵的 Scipy.sparse 测试对对角矩阵返回 False。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21693195/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com