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

不知道我說清楚了木有,有問題的我們可以繼續討論下。記得點贊哦。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章