python——numpy.bincount()的用法

1.它大致说的是bin的数量比x中的最大值大1,每个bin给出了索引值在x中出现的次数,下面以实例说明

# 我们可以看到x中最大的数为7,因此bin的数量为8,那么它的索引值为0->7
x = np.array([0, 1, 1, 3, 2, 1, 7])
# 索引0出现了1次,索引1出现了3次......索引5出现了0次......
np.bincount(x)
#因此,输出结果为:array([1, 3, 1, 1, 0, 0, 0, 1])

# 我们可以看到x中最大的数为7,因此bin的数量为8,那么它的索引值为0->7
x = np.array([7, 6, 2, 1, 4])
# 索引0出现了0次,索引1出现了1次......索引5出现了0次......
np.bincount(x)
#输出结果为:array([0, 1, 1, 0, 1, 0, 1, 1])

2.下面,我来解释一下weights这个参数。文档说,如果weights参数被指定,那么x会被它加权,也就是说,如果值n发现在位置i,那么out[n] += weight[i]而不是out[n] += 1.因此,我们weights的大小必须与x相同,否则报错。下面,我举个例子让大家更好的理解一下:

w = np.array([0.3, 0.5, 0.2, 0.7, 1., -0.6])
# 我们可以看到x中最大的数为4,因此bin的数量为5,那么它的索引值为0->4
x = np.array([2, 1, 3, 4, 4, 3])
# 索引0 -> 0
# 索引1 -> w[1] = 0.5
# 索引2 -> w[0] = 0.3
# 索引3 -> w[2] + w[5] = 0.2 - 0.6 = -0.4
# 索引4 -> w[3] + w[4] = 0.7 + 1 = 1.7
np.bincount(x,  weights=w)
# 因此,输出结果为:array([ 0. ,  0.5,  0.3, -0.4,  1.7])

3.最后,我们来看一下minlength这个参数。文档说,如果minlength被指定,那么输出数组中bin的数量至少为它指定的数(如果必要的话,bin的数量会更大,这取决于x)。下面,我举个例子让大家更好的理解一下:

# 我们可以看到x中最大的数为3,因此bin的数量为4,那么它的索引值为0->3
x = np.array([3, 2, 1, 3, 1])
# 本来bin的数量为4,现在我们指定了参数为7,因此现在bin的数量为7,所以现在它的索引值为0->6
np.bincount(x, minlength=7)
# 因此,输出结果为:array([0, 2, 1, 2, 0, 0, 0])

# 我们可以看到x中最大的数为3,因此bin的数量为4,那么它的索引值为0->3
x = np.array([3, 2, 1, 3, 1])
# 本来bin的数量为4,现在我们指定了参数为1,那么它指定的数量小于原本的数量,因此这个参数失去了作用,索引值还是0->3
np.bincount(x, minlength=1)
# 因此,输出结果为:array([0, 2, 1, 2])

转载出处: https://blog.csdn.net/xlinsist/article/details/51346523

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Python中使用NumPy库,可以使用`numpy.arange()`函数来创建一维数组,该函数的语法如下: ```python numpy.arange([start, ]stop, [step, ]dtype=None) ``` 其中: - `start`:可选参数,表示起始值,默认为0。 - `stop`:必填参数,表示终止值(不包含)。 - `step`:可选参数,表示步长,默认为1。 - `dtype`:可选参数,表示返回数组的数据类型。 下面是几个示例: ```python import numpy as np # 生成0到4的整数序列 a = np.arange(5) print(a) # 输出 [0 1 2 3 4] # 生成2到8的整数序列,步长为2 b = np.arange(2, 9, 2) print(b) # 输出 [2 4 6 8] # 生成0到1之间的浮点数序列,步长为0.1 c = np.arange(0, 1, 0.1) print(c) # 输出 [0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9] ``` 希望这能帮助到你! ### 回答2: numpy.arange是Python中非常常用的一个函数,主要用来产生数组。该函数的完整定义为: numpy.arange([start, ]stop, [step, ]dtype=None) numpy.arange函数使用方式类似于Python自带的range函数,但是该函数返回的是一个ndarray类型的数组,而不是一个列表。该函数可以接受三个参数: (1)start:表示数列的起始值,如果没有指定该参数,则默认从0开始。 (2)stop:表示数列的终止值(不包含),该参数是必选的。 (3)step:表示数列中的步长,即相邻两个数字之间的差值,默认为1。可以为负数,表示从大到小产生数列。 该函数返回的数组中,数列从start开始,一直到stop-1,步长为step。如果step为负数,则数列从大到小产生。在实际使用过程中,除了可以直接传入数字以外,还可以传入其他一些参数: (1)dtype:表示要产生的数组元素的类型,可以为int、float、complex等。默认为None,即根据输入参数来确定类型。 举个例子,要创建一个从3开始,步长为2,小于10的整数的numpy数组: import numpy as np arr = np.arange(3, 10, 2) print(arr) 输出结果为[3 5 7 9] 需要注意的是,numpy.arange函数产生的数组不包含stop的值,即上述例子中的10。如果需要包含stop的值,可以将stop的值加上步长。如果想以不同的步长产生float类型的数组,可以指定dtype为float: import numpy as np arr_float = np.arange(3.0, 10.0, 0.5, dtype=float) print(arr_float) 输出结果为[3. 3.5 4. 4.5 5. 5.5 6. 6.5 7. 7.5 8. 8.5 9. 9.5] 总之,numpy.arange函数是一个非常常用的函数,掌握该函数的用法对于使用numpy库来说非常重要。 ### 回答3: numpy.arange是一种用于生成一维数组的函数。它使用起来非常简单,只需要传入起始值、终止值、步长三个参数。这个函数会从起始值开始,逐步展开一个指定范围内的数组,步长为指定的值。具体来说: numpy.arange(start,stop,step) 其中start表示起始值,stop表示终止值(不包括在内),step表示步长。这三个参数都必须是数值型,可以是整数、浮点数等等。 下面是一些示例,来用来说明该函数的用法: 1.生成一个从0开始,以1为步长,终止值为10的一维数组: import numpy as np a = np.arange(0,10,1) 结果就是a=[0,1,2,3,4,5,6,7,8,9]。 2.生成一个从1开始,以2为步长,终止值为10的一维数组: import numpy as np a = np.arange(1,10,2) 结果就是a=[1,3,5,7,9]。 3.生成一个从3开始,以0.5为步长,终止值为5的一维数组: import numpy as np a = np.arange(3,5,0.5) 结果就是a=[3,3.5,4,4.5]。 需要注意的是,终止值不包括在数组范围内,即实际生成的数组中最后一个值为 start + n*step < stop,其中n为一个正整数。并且在使用浮点数作为参数时,由于浮点数精度问题,可能会出现实际生成数组的长度比预期的长度小一些的情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值