如何计算数组中的值与python中数组之和的比率?

时间:2017-07-28 04:23:06

标签: python numpy

我有一个像这样的数组:

array =[[1,2,3],
        [5,3,4],
        [6,7,2]]

对于每个成员,我想计算它们与行总和的比率。

因此,我提出的样本中的问题的结果是:

result = [[1/(1+2+3),2/(1+2+3),3/(1+2+3)],
          [5/(5+3+4),3/(5+3+4),4/(5+3+4)],
          [6/(6+7+2),7/(6+7+2),2/(6+7+2)]]

我编写以下代码但它不起作用,因为两个运算符具有不同的形状:

array/array.sum(array, axis=1)

1 个答案:

答案 0 :(得分:2)

你可以在总和时指定keepdim=True,然后你得到一个2d数组,而每行代表行总和:

array = np.array([[1,2,3],
        [5,3,4],
        [6,7,2.]])

array/array.sum(1, keepdims=True)
#array([[ 0.16666667,  0.33333333,  0.5       ],
#       [ 0.41666667,  0.25      ,  0.33333333],
#       [ 0.4       ,  0.46666667,  0.13333333]])