鉴于scipy.sparse.coo_matrix
类型的稀疏矩阵R
形状1.000.000 x 70.000
我想通了,给定一个`scipy.sparse.coo_matrix`类型的矩阵如何确定每行最大值的索引和值?
row_maximum = max(R.getrow(i).data)
会给我第i行的最大值。
我现在需要的是对应的值row_maximum
索引。
任何想法如何实现这一目标?
感谢您的任何建议提前!
鉴于scipy.sparse.coo_matrix
类型的稀疏矩阵R
形状1.000.000 x 70.000
我想通了,给定一个`scipy.sparse.coo_matrix`类型的矩阵如何确定每行最大值的索引和值?
row_maximum = max(R.getrow(i).data)
会给我第i行的最大值。
我现在需要的是对应的值row_maximum
索引。
任何想法如何实现这一目标?
感谢您的任何建议提前!
getrow(i)
返回1×n的CSR矩阵,它有一个indices
属性,它给出了相应的值的行指数在data
属性。 (我们知道形状是1个XN,所以我们没有对付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
是一个空数组,则会引发异常。
使用numpy.argmax
(或scipy.argmax
它是同一回事)
index_of_maximum = scipy.argmax(R.getrow(i).data)