Matrix normalized by rows

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]]

Guess you like

Origin blog.csdn.net/qq_26460841/article/details/115158713