numpy divide row by row sum

后端 未结 3 806
栀梦
栀梦 2020-12-07 18:24

How can I divide a numpy array row by the sum of all values in this row?

This is one example. But I\'m pretty sure there is a fancy and much more efficient way of do

3条回答
  •  青春惊慌失措
    2020-12-07 18:59

    You can do it mathematically as .

    Here, E is your original matrix and D is a diagonal matrix where each entry is the sum of the corresponding row in E. If you're lucky enough to have an invertible D, this is a pretty mathematically convenient way to do things.

    In numpy:

    import numpy as np
    
    diagonal_entries = [sum(e[row]) for row in range(e.shape[0])]
    D = np.diag(diagonal_entries)
    D_inv = np.linalg.inv(D)
    e = np.dot(e, D_inv)
    

提交回复
热议问题