📜  Python中的numpy.bincount

📅  最后修改于: 2020-06-17 04:38:07             🧑  作者: Mango

numpy.bincount(arr, weights = None, min_len = 0) :  在+ ve个整数数组中,它计算每个元素的出现。每个bin值是其索引的出现。也可以相应地设置纸槽尺寸。

 

参数:

arr:[array_like,1D]输入数组,具有正数
weights:[array_like,可选]与arr形状相同
min_len:我们希望在输出数组中的最小箱数

返回:

输出数组编号 输入中bin的索引值的出现-arr。
默认情况下,输出数组的长度为max元素的长度arr +1。
这里输出数组的大小为max(input_arr)+1。

代码1:在NumPy中使用bincount

# Python程序解释numpy.bincount方法的工作  
  
import numpy as geek 
  
# 带+ ve整数的一维数组 
array1 = [1, 6, 1, 1, 1, 2, 2] 
bin = geek.bincount(array1) 
print("Bincount输出  : \n ", bin) 
print("bin大小 : ", len(bin), "\n") 
  
array2 = [1, 5, 5, 5, 4, 5, 5, 2, 2, 2] 
bin = geek.bincount(array2) 
print("Bincount输出  : \n ", bin) 
print("bin大小 : ", len(bin), "\n") 
  
# 使用min_length属性 
length = 10
bin1 = geek.bincount(array2, None, length) 
print("Bincount输出  : \n ", bin1) 
  
print("bin大小 : ", len(bin1), "\n") 

输出:

Bincount输出  : 
  [0 4 2 0 0 0 1]
bin大小 :  7 

Bincount输出  : 
  [0 1 3 0 1 5]
bin大小 :  6 

Bincount输出  : 
  [0 1 3 0 1 5 0 0 0 0]
bin大小 :  10 

代码2:我们可以使用bincount()权重按元素执行加法

# Python程序解释numpy.bincount方法的工作 
  
import numpy as geek 
  
# 带+ ve整数的一维数组 
array2 = [10, 11, 4, 6, 2, 1, 9] 
array1 = [1, 3, 1, 3, 1, 2, 2] 
  
# array2 : weight 
bin = geek.bincount(array1, array2) 
print("元素级求和 : \n", bin) 
  
#index 0 : 0 
#index 1 : 10 + 4 + 2 = 16 
#index 2 : 1 + 9 = 10 
#index 3 : 11 + 6 = 17 

输出:

元素级求和 : 
 [  0.  16.  10.  17.]