numpy bincount 智障理解版

来源:互联网 发布:北京南街村方便面 知乎 编辑:程序博客网 时间:2024/04/30 03:06

这个版本的适用前提有两个:

    1. 已经看了英文版官方说明和一些其他blog并没有完全get  

    2. 其实是1的延伸,不懂的原因大概跟我差不多,脑力不够,俗称智障

以上任意一条不符合请不要继续,我怕你看完骂我智障。。。



好,话不多说,我就用大家都用的这个例子(我现在编辑器也用不利索,就大概打一下)

    x = np.array( [ 0, 1, 1, 3, 2, 1, 7 ] )

    np.bincount(x)

    输出结果 array( [ 1, 3, 1,1, 0, 0, 0, 1] )

权重部分并没有什么特殊的,一个字都不会提。

这个函数的使命:一个数列,长这样,想换个方法,还能认出是它,但是主要表达频次。in short,映射

建立一个映射关系,要有对应的东西,也就是两边都能找着的,在这里就是原数列的值和新数列的indice,新数列的值就是频次啦。

如果你比我傻得更甚,那我还有一个大招:把bincount输出的结果当做原数列的频率分布直方图的纵轴数值,indice就是横轴的取值范围


由上述大招也就非常好理解这个函数的两个特性:


    1. bincount输出的数列长度比原数列最大值大1   

        原因:数列长度跟indice相关,indice想要覆盖原数列画直方图当然要到最大值,但它开始于0(这你要问我为什么我也不会回答的),所以会大一个。关于minlength有一些说法,在此不作说明。


    2. 这个函数的操作范围是非负整数

       原因: 返回值是频次,对应的横轴是indice,indice是从0开始的整数,so,就酱


不知道会不会有人看到。希望对跟我一样蹒跚着的人有些细小的帮助。


博主是个非常没有自信但觉得这个领域挺好玩的人,在这个社区学到了一些东西,以后有这种卡住后突然想懂的东西会写过来的。

接受指正不接受批评,脾气很坏的