python中np.bincount()

python中np.bincount()

x = np.array([1, 2, 3, 3, 0, 1, 4])
np.bincount(x)
'''
array([1, 2, 1, 2, 1], dtype=int64)
'''

统计索引出现次数:索引0出现1次,1出现2次,2出现1次,3出现2次,4出现1次

因此通过bincount计算出索引出现次数如下:
bin的数量比x中最大数多1,例如x最大为4,那么bin数量为5(index从0到4),也就是bincount输出的一维数组为5个数,bincount中的数代表的是它的索引值在x中出现的次数!

还是以上述x为例子,当我们设置weights参数时候

w = np.array([0.3,0.5,0.7,0.6,0.1,-0.9,1])

那么设置这个w权重后

np.bincount(x,weights=w)

’‘’
array([ 0.1, -0.6,  0.5,  1.3,  1. ])
‘’‘

怎么计算的?

先对x与w抽取出来:

x —> [1, 2, 3, 3, 0, 1, 4]

w —> [0.3,0.5,0.7,0.6,0.1,-0.9,1]
索引 0 出现在x中index=4位置,那么在w中访问index=4的位置即可,w[4]=0.1

索引 1 出现在x中index=0与index=5位置,那么在w中访问index=0与index=5的位置即可,然后将两这个加和,计算得:w[0]+w[5]=-0.6
其余的按照上面的方法即可!

bincount的另外一个参数为minlength,这个参数简单,可以这么理解,当所给的bin数量多于实际从x中得到的bin数量后,后面没有访问到的设置为0即可。

这里我们直接设置minlength=7参数,并输出!

np.bincount(x,weights=w,minlength=7)
’‘’
array([ 0.1, -0.6,  0.5,  1.3,  1. ,  0. ,  0. ])
‘’‘

与上面相比多了两个0,怎么回事呢?

上面知道,这个bin数量为5,index从0到4,那么当minlength为7的时候,也就是总长为7,index从0到6,多了后面两位,直接补位为0即可!

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值