【发布时间】:2017-03-31 10:49:00
【问题描述】:
我有一个稀疏的无向图存储在scipy csr_matrix中,我需要找出权重最大的边,这意味着我需要找到最大值及其对应的行和列索引(实际上我必须找到K 个最大值,但为了简化问题)。因此我写道:
M=M.toarray()
for i in range(1,len(M)):
for j in range(i+1,len(M[i])):
if M[i][j] > maximum:
row,col,maximum = i,j,M[i][j]
它似乎很笨拙,表现不佳。有没有更好的方法来做到这一点?
【问题讨论】:
-
Finding maximum value and their indices in a sparse lil_matrix (Scipy/Python) 这应该可以。或者您可以使用
.toarray()获取内部 np 数组并使用np.unravel_index(a.argmax(), a.shape) -
还有stackoverflow.com/questions/31790819/…(每行前10名)。