zoukankan      html  css  js  c++  java
  • numpy.bincount()

    numpy.bincount详解

    numpy.bincount(x, weights=None,minlength=0)

    参数中要求x是一个array_like,一维的并且包含非负整数。

    In [19]: x = [0,1,5,10]
    
    In [20]: np.bincount(x)
    Out[20]: array([1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1], dtype=int64)
    

    可以看到np.bincount(x)的元素个数比起x中的最大值10大1。bincount=np.bincount(x)中每个元素的含义是该元素在bincount中的索引在x中出现的次数。bincount第一个元素1表示该元素的index=0在x中出现按的次数为1,bincount中的最后一个元素1表示该元素的index=10在x中出现的次数为1。

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

    In [1] w = np.array([0.3, 0.5, 0.2, 0.7, 1., -0.6])
    # 我们可以看到x中最大的数为4,因此bin的数量为5,那么它的索引值为0->4
    In [2] 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
    In [3] np.bincount(x,  weights=w)
    Out [3] array([ 0. ,  0.5,  0.3, -0.4,  1.7])
    

    最后,我们来看一下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])
    
  • 相关阅读:
    uiwebview与objective-c
    ios开发:如何用js调用ios
    ios上ZXing库的配置流程
    IOS连接
    ios开发:如何加载大量图片 相册示例
    ASIHTTPRequest中文入门教程全集 http://www.zpluz.com/thread-3284-1-1.html
    Error message Object BOM does not allow filter on MAST.STLNR
    How to download sales BOM from ERP to CRM
    CRM中间件里parent not ok的错误消息如何处理
    SAP CRM settype的重要性
  • 原文地址:https://www.cnblogs.com/ZeroTensor/p/10263350.html
Copyright © 2011-2022 走看看