二维numpy数组中的比率计算

时间:2020-11-06 09:43:40

标签: python numpy

假设给出以下numpy数组myArray

myArray = np.array([[4,0,0],
                    [1,0,1],
                    [2,1,0],
                    [0,0,2],
                    [1,3,0],
                    [1,0,1],
                    [1,0,1]])

需要计算一列中的数字与该列中的数字之和的比率。 例如,第0列的总和为10,因此第0列和第0行的值应为0.4。

也就是说,上面myArray的预期结果是:

[[0.4,0,0],
 [0.1,0,0.2],
 [0.2,0.25,0],
 [0,0,0.4],
 [0.1,0.75,0],
 [0.1,0,0.2],
 [0.1,0,0.2]]

1 个答案:

答案 0 :(得分:4)

只需:

import numpy as np

myArray = np.array([[4,0,0],
                    [1,0,1],
                    [2,1,0],
                    [0,0,2],
                    [1,3,0],
                    [1,0,1],
                    [1,0,1]])

result = myArray / myArray.sum(axis=0)
print(result)

输出

[[0.4  0.   0.  ]
 [0.1  0.   0.2 ]
 [0.2  0.25 0.  ]
 [0.   0.   0.4 ]
 [0.1  0.75 0.  ]
 [0.1  0.   0.2 ]
 [0.1  0.   0.2 ]]