numpy.bincount正确理解
今天看了个方法,numpy.bincount首先官网文档:
numpy.bincount
numpy.
bincount
(x, weights=None, minlength=0)-
Count number of occurrences of each value in array of non-negative ints.
The number of bins (of size 1) is one larger than the largest value in x. If minlength is specified, there will be at least this number of bins in the output array (though it will be longer if necessary, depending on the contents of x). Each bin gives the number of occurrences of its index value in x. If weights is specified the input array is weighted by it, i.e. if a value
n
is found at positioni
,out[n] += weight[i]
instead ofout[n] += 1
.Parameters: - x : array_like, 1 dimension, nonnegative ints
-
Input array.
- weights : array_like, optional
-
Weights, array of the same shape as x.
- minlength : int, optional
-
A minimum number of bins for the output array.
New in version 1.6.0.
Returns: - out : ndarray of ints
-
The result of binning the input array. The length of out is equal to
np.amax(x)+1
.
Raises: - ValueError
-
If the input is not 1-dimensional, or contains elements with negative values, or if minlength is negative.
- TypeError
-
If the type of the input is float or complex.
大意思是: 一脸懵逼好吧,统计bin在x出现的次数,what is bin?长度是x中最大值的+1,也看了一些博客,有些是这样写的:
仔细看了看这个例子,还是没看懂,难道是我智商有问题?索引值0->7 哪里看出来的?官网文档也没说呀
索引0出现1次?x的索引0上数字是0,缺失出现了1次,1出现3次对的,后面索引2也是1应该也是3呀 什么鬼?怎么结果是1???
最终,我发现了到底是怎么统计的了,这个函数要求x里面的数字是非负正数是有道理的,
函数返回的是固定的array[0, 1, 2, 3, ... , N]这个数据对应数字在该数组x中出现的次数。
那么我们来验证一下经典的例子:
x = np.array([0, 1, 1, 3, 2, 1, 7])
第一个是看0在x中出现几次,1次;
1出现几次,3次;
2出现几次,1次;
3出现几次,1次;
4出现几次,0次;
5出现几次,0次;
6出现几次,0次;
7出现几次,1次
结果:
np.bincount(x)
array([0, 1, 1, 0, 1, 0, 1, 1])
完美,再试一个?
也是对的,为啥要长度的最大值加一呢,显然是这里从0开始计算出现次数的,所以最后一个是最大值,数组长度要加1了。
另外一个验证方式,z的数字求和肯定和np.bincount(z).dot(np.arange(max(z)+1))相等
至于其它参数就不介绍了。
numpy.bincount正确理解的更多相关文章
- numpy.bincount()
numpy.bincount详解 numpy.bincount(x, weights=None,minlength=0) 参数中要求x是一个array_like,一维的并且包含非负整数. In [19 ...
- Js位置与大小(1)——正确理解和运用与尺寸大小相关的DOM属性
在web开发中,不可避免遇到要计算元素大小以及位置的问题,解决这类问题的方法是利用DOM提供的一些API结合兼容性处理来,所有内容大概分3篇左右的文章的来说明.本文作为第一篇,介绍DOM提供的与尺寸大 ...
- 【转】正确理解PHP程序编译时的错误信息
我们编写程序时,无论怎样小心谨慎,犯错总是在所难免的.这些错误通常会迷惑PHP编译器.如果开发人员无法了解编译器报错信息的含义,那么这些错误信息不仅毫无用处,还会常常让人感到沮丧. 编译PHP脚本时, ...
- 如何正确理解正则表达式中的分隔符 \b
前言:好久不见,博客园. 最近在学习研究regex,其中有个特迷惑自己的知识点是分隔符 ( word boundary) [\b] (注:为了方便,后文都以[]来包含字符,并不是reg规则里面的[] ...
- Java进阶(七)正确理解Thread Local的原理与适用场景
原创文章,始自发作者个人博客,转载请务必将下面这段话置于文章开头处(保留超链接). 本文转发自技术世界,原文链接 http://www.jasongj.com/java/threadlocal/ Th ...
- IM开发基础知识补课:正确理解前置HTTP SSO单点登陆接口的原理
1.前言 一个安全的信息系统,合法身份检查是必须环节.尤其IM这种以“人”为中心的社交体系,身份认证更是必不可少. 一些PC时代小型IM系统中,身份认证可能直接做到长连接中(也就是整个IM系统都是以长 ...
- IM开发基础知识补课(五):通俗易懂,正确理解并用好MQ消息队列
1.引言 消息是互联网信息的一种表现形式,是人利用计算机进行信息传递的有效载体,比如即时通讯网坛友最熟悉的即时通讯消息就是其具体的表现形式之一. 消息从发送者到接收者的典型传递方式有两种: 1)一种我 ...
- 正确理解CAP定理
前言 CAP的理解我也看了很多书籍,也看了不少同行的博文,基本每个人的理解都不一样,而布鲁尔教授得定义又太过的简单,没有具体描述和场景案例分析.因此自己参考部分资料梳理了一篇与大家互相分享一下. 标题 ...
- 正确理解 LEAL (Load Effective Address) 指令
LEAL: leal S, D -> D ← &S 在 CSAPP (Computer Systems: A Programmer’s Perspective) 中,对 LE ...
随机推荐
- python之路之反射
这个是上两个的加强版
- spring(三):BeanDefiniton
- Explainable ML
定义: 不仅可以(分类),还要输出分类的理由是什么(局部),以及某一个分类的判断标准(全局) 局部: silence map. 把{x1.....xn}中每一个像素加一个偏移量之后,得到的y偏移量与x ...
- NOIP做题练习(day5)
A - 中位数图 题面 题解 先找出题意中的\(b\)所在的位置. 再以这个位置为中心,向右\(for\)一遍有多少个大于/小于该数的数 大于就\(++cs\) 小于就\(--cs\). 因为这个数是 ...
- AS报错:Class kotlin.reflect.jvm.internal.FunctionCaller$FieldSetter can not access a member of class com.android.build.gradle.tasks.ManifestProcessorTask with modifiers "private"
删除所有.gradle文件夹 失效缓存/重新启动
- 虚拟机kali Linux 的网络配置
首先打开虚拟机中的kali 发现是没有办法连网的 然后我们将kaili关闭 然后打开 然后看黄色区域选择桥接模式然后重新启动即可 https://jingyan.baidu.com/article/7 ...
- 1.java-谈谈接口
1.面向接口给程序带来的便利和灵活性 List li = new ArrayLIst(); 为什么不写成 ArrayList li = new ArrayLIst(); 2.接口就相当于一些类的规范, ...
- shell的debug模式
如何调试shell脚本? 在指定shell运行版本时加上 '-x' #!/bin/bash -x ➜ demo git:(master) ✗ cat debug.sh #!/bin/bash -x ...
- 蓝桥杯2016年省赛C/C++大学A组
网友年龄 某君新认识一网友. 当问及年龄时,他的网友说: "我的年龄是个2位数,我比儿子大27岁, 如果把我的年龄的两位数字交换位置,刚好就是我儿子的年龄" 请你计算:网友的年龄一 ...
- 继承QWidget后无法使用QSS
使用继承QWidget后的类对象时,如果设置styleSheet看不到效果, 需要重写 void paintEvent(QPaintEvent *event); 方法, 在重写的方法中加入如下代码即可 ...