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

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)))

 

你可能感兴趣的:(#,Numpy包)