Я использую этот код для перебора элементов в матрице csr.
import numpy as np
from scipy import sparse
A = [[0,0,0,0],[5,8,0,0],[0,0,3,0],[0,6,0,0]]
M = sparse.csr_matrix(A)
print(type(M))
zip2 = lambda x: zip(x[0], x[1])
for i1, i2 in zip2(M.tocsr().nonzero()):
print(i1, i2, M[i1, i2])
Но я бы хотел перебирать строки таким способом. Есть ли способ сделать это?
for i1 in ...:
# Do something with i1
for i2 in ...:
# Do something with (i1, i2)
Один из способов добиться этого - использовать .indices
.indptr
.data
. Но, возможно, есть что-то более читабельное, чем этот способ?