给定形状为R
的{{1}}类型的稀疏矩阵scipy.sparse.coo_matrix
,我发现
1.000.000 x 70.000
将给出第i行的最大值。
我现在需要的是与row_maximum = max(R.getrow(i).data)
值对应的索引。
任何想法如何实现?
提前感谢您的任何建议!
答案 0 :(得分:8)
getrow(i)
返回1 x n CSR矩阵,该矩阵具有indices
属性,该属性提供data
属性中相应值的行索引。 (我们知道形状是1 x n,所以我们不必处理indptr
属性。)所以这将起作用:
row = R.getrow(i)
max_index = row.indices[row.data.argmax()] if row.nnz else 0
我们必须分别处理row.nnz
为0的情况,因为如果row.data.argmax()
是一个空数组,row.data
将引发异常。
答案 1 :(得分:-1)
使用numpy.argmax
(或scipy.argmax
,这是相同的事情)
index_of_maximum = scipy.argmax(R.getrow(i).data)