numpy.digitize(data,bins)函数用法

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的索引的一个索引列表。

不知道我说清楚了木有,有问题的我们可以继续讨论下。记得点赞哦。

猜你喜欢

转载自blog.csdn.net/weixin_38358654/article/details/78997769
今日推荐