numpy------bincount()通俗易懂

本文详细解释了NumPy中的bincount函数如何统计列表中各元素的出现频率,并展示了其在矩阵值验证上的应用。通过将二维或三维数据reshape为一维向量,bincount能够高效地输出数字的频率分布。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

bincount的用途很简单,就是统计出一个列表的各个元素的出现次数。

例如输入是:[1,0,2,2,1,2,3,5]

那么输出就是:[1,2,3,1,0,1]

这样的结果可能并不是很直观,可能依然会有同学会问为什么会输出这样的结果。

我们看看:假如我们把输入的列表中的数字都统计一遍,形成一个字典:

key是列表的数字,value是数字对应出现的次数:

{
  0:1,
  1:2,
  2:3,
  3:1,
  4:0,
  5:1
}

所以这就很直观啦,但是又有同学要问了,输入明明没有4啊,为什么也要统计4呢?因为这就是bincount的特性,例如如果一个列表中最大的数字是5的话,那么输出的列表就有6个(5+1)元素,因为要统计0~5数字的出现频率。

说白了 bincount就是统计列表中数字对应的出现频率的。

 

那有什么用呢?

对于我而言,我一般用来看一个矩阵中的值是否符合我的预期。如果一个矩阵太大,是打印不出来的,调试时看也很不方便,于是,用bincount就可以输出,矩阵中的数字的出现频率,进而知道矩阵中的值的取值范围是不是符合我的预期。当然,二维三维的输入数据要做一个reshape处理,把它转成一维向量,如:

import numpy as np
img = cv2.imread(path)
print(np.bincount(img.reshape(-1)))

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值