def row_normalize_matrix(matrix):
"""Row-normalize feature matrix"""
rowsum = np.sum(matrix, axis=1, dtype=np.float32)
r_inv = np.power(rowsum, -1)
r_inv[np.isinf(r_inv)] = 0.
r_mat_inv = sp.diags(r_inv)
return r_mat_inv.dot(matrix)
test:
arr1=[[1,2],[2,4],[11,33],[2,44],[55,77],[11,22],[55,67],[67,89]]
row_normalize_matrix(arr1)
result:
[[0.33333334 0.66666669]
[0.33333334 0.66666669]
[0.25000001 0.75000002]
[0.04347826 0.95652176]
[0.41666668 0.58333335]
[0.33333334 0.66666669]
[0.45081965 0.5491803 ]
[0.42948719 0.57051283]]