最大的scipy.sparse.csr_matrix

时间:2014-11-12 07:38:49

标签: python scipy

我试图在scipy.sparse矩阵中找到最大值。文档here表示存在.max方法。但奇怪的是,这对我来说并不适用:

>>> import scipy.sparse as sps 
>>> a = sps.csr_matrix((3,3))
>>> a[0,0] = 1
>>> a.max()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File     "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/scipy/sparse/base.py", line 393, in __getattr__
raise AttributeError(attr + " not found")
AttributeError: max not found

知道为什么会这样吗?

(我使用的是scipy版本0.11.0)

1 个答案:

答案 0 :(得分:1)

scipy docs website中的一些考古学显示该方法是在scipy 13.0中引入的。

如果您不想升级,可以使用a.data.max()获取稀疏矩阵的非零条目的最大值。

如果你想要它也是最大值,考虑到零,这就是.max()方法的作用,做一些类似的事情:

m = a.data.max()
if m < 0 and a.nnz < a.shape[0]*a.shape[1]:
    m = 0