digitize(data,bins)函数是numpy的一个内置函数。让人感到很震惊的是,网上居然很少有关于这个函数用法的中文介绍。
先上代码:
import random as rd data=[rd.randint(a=100,b=1000) for _ in range(20)] bins=[200,300,400,500,600,700,800,900,1000] print('data:',data) print('bins:',bins) print('np.digitize(data,bins):',np.digitize(data,bins))运行结果如下:
Tips:digitize(data,bins)函数对data列表似乎没有什么要求,但是对bins列表是由要求的:要求bins雷暴汇总的数据要么是升序的要么是降序的,绝壁不能是随意的一堆数。
大家可以很清楚的看到,digitize(data,bins)函数执行的过程大概如下:相当于两层for循环。首先最外面的一层:顺序的遍历data列表,取出当前的一个数a,然后顺序的遍历bins列表,返回bins列表中某个数的索引,如何找呢? 规则如下:如果:bins列表是升序的,那么如果满足 bins[i-1]<=a<bins[i],那么就保存i,然后回到外层循环继续上面的操作,如果bins列表是降序的,那么如果满足 bins[i]<=a<bins[i-1],那么就保存i,当data列表遍历完之后,就返回由i组成的来源于bins的索引的一个索引列表。
不知道我说清楚了木有,有问题的我们可以继续讨论下。记得点赞哦。