python sum 数组原理_python – 如何使numpy数组列总和为1

按列总结划分每列的元素 –

a/a.sum(axis=0,keepdims=1) # or simply : a/a.sum(0)

要使行总和统一,请更改轴输入 –

a/a.sum(axis=1,keepdims=1)

样品运行 –

In [78]: a = np.random.rand(4,5)

In [79]: a

Out[79]:

array([[ 0.37, 0.74, 0.36, 0.41, 0.44],

[ 0.51, 0.86, 0.91, 0.03, 0.76],

[ 0.56, 0.46, 0.01, 0.86, 0.38],

[ 0.72, 0.66, 0.56, 0.84, 0.69]])

In [80]: b = a/a.sum(axis=0,keepdims=1)

In [81]: b.sum(0) # Verify

Out[81]: array([ 1., 1., 1., 1., 1.])

要确保它对于Python 2.x也适用于int数组,请使用__future__ import division或使用np.true_divide.

对于添加最多0的列

对于添加到0的列,假设我们可以保持原样,我们可以将求和设置为1,而不是除以0,就像这样 –

sums = a.sum(axis=0,keepdims=1);

sums[sums==0] = 1

out = a/sums

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值