画图必备numpy函数
给定一堆数字,需要统计这些数字中每个数字的个数。
如果这些数字是整数,那自然可以精确统计出来。
如果这些数字是浮点数,如果精确统计会发现几乎每个数字都只出现了一次。所以浮点数就要通过区间的方式进行统计。
一、使用collections.Counter
from collections import Counter
import numpy as np
import pylab as plt
a = np.random.randint(0, 10, (100))
c = Counter(a)
x = c.keys()
y = c.values()
plt.plot(x, y, linewidth=5, label="counter")
cnt = np.bincount(a)
plt.plot(range(len(cnt)), cnt, label="numpy")
plt.legend()
plt.show()
二、使用np.bincount
统计整数的出现次数,默认每个整数出现一次就算一次,可以通过weights参数指定每个整数的出现次数。
函数原型:numpy.bincount(x, weights=None, minlength=0)
weights表示各个数字的权重,长度和x一致。
import numpy as np
a = np.array([1, 2, 5, 7, 2])
print(np.bincount(a)) #[0 1 2 0 0 1 0 1]
print(np.bincount(a, [0.1, 0.2, 0.5, 0.7, 0.2])) #[0. 0.1 0.4 0. 0. 0.5 0. 0.7]
三、使用np.histogram
使用若干个区间统计浮点数出现次数。
values,edges=numpy.histogram(a, bins=10, range=None, normed=False, weights=None, density=None)
返回的edges和values都是一维数组,edges的长度比values大一个,表示len(values)个间隔。
- a:一个数组,如果是多维会被当做一维数组
- bins:如果是一个int,表示把区间[min,max]均分为bins份;如果是一个数组,表示手动指定各个bins
- range:如果bins是一个int,使用range指定柱状图的区间
- weights:可以为每个元素设定权重,默认每个元素权重为1
- normed:已废弃
- density:bool值
返回值:
values就是纵轴,是一个一维数组,表示每个柱子内元素的个数
edges就是横轴,是一个一维数组,它的长度比values多一维
四、使用np.interp实现插值
y=numpy.interp(x, xp, fp, left=None, right=None, period=None)
- x:一个数组,表示要取哪些地方的插值结果
- xp、fp:x坐标和y坐标
- left、right、period:基本用不上,不必知道
返回值:y插值之后的结果,它的长度和x一样。
使用此函数可以只绘制一部分坐标而不用全不绘制。matplotlib内部自动会调用插值函数合理绘制图像,无需手动通过numpy调用,但当向前端传递数据让js完成绘制时,就需要手动调用numpy来进行插值。
实际上,matplotlib这个库在可视化数据时已经为我们做好了这些工作,如插值等,直接用matplotlib是不需要使用以上函数的。有时,需要将绘图数据从后端传到前端用HTML进行展示,这就需要压缩一下数据,只把展示的数据传送过来即可。
画图必备numpy函数的更多相关文章
- Numpy函数库基础
利用Numpy函数库构造4*4随机数组,然后将数组转化为矩阵,然后矩阵与其逆矩阵相乘,计算机处理的误差 from numpy import * random.rand(4,4) print(rando ...
- [转]Python numpy函数hstack() vstack() stack() dstack() vsplit() concatenate()
Python numpy函数hstack() vstack() stack() dstack() vsplit() concatenate() 觉得有用的话,欢迎一起讨论相互学习~Follow Me ...
- Numpy 函数总结 (不断更新)
本篇主要收集一些平时见到的 Numpy 函数. numpy.random.seed & numpy.random.RandomState np.random.seed() 和 np.rando ...
- numpy函数库中一些经常使用函数的记录
##numpy函数库中一些经常使用函数的记录 近期才開始接触python,python中为我们提供了大量的库,不太熟悉.因此在<机器学习实战>的学习中,对遇到的一些函数的使用方法进行记录. ...
- numpy函数库中一些常用函数的记录
##numpy函数库中一些常用函数的记录 最近才开始接触Python,python中为我们提供了大量的库,不太熟悉,因此在<机器学习实战>的学习中,对遇到的一些函数的用法进行记录. (1) ...
- numpy函数笔记(持续更新)
numpy函数笔记 np.isin用法 np.isin(a,b) 用于判定a中的元素在b中是否出现过,如果出现过返回True,否则返回False,最终结果为一个形状和a一模一样的数组.(注意:这里的a ...
- numpy 函数一:linspace
接触 numpy 遇到的第一个函数可能就是 linspace 函数,但是对于我们这种没有学过 matlab 的人来说,根本不知道这是什么. 所以只能自己查资料. 词典显示: 线性等分向量 线性平分矢量 ...
- numpy函数白板
numpy.linspace(start, stop, num=50, endpoint=True, retstep=False) start 起始位置 stop 终止位置 num 个数 endpoi ...
- numpy函数fromfunction分析
从函数规则创建数组是非常方便的方法.在numpy中我们常用fromfunction函数来实现这个功能. 在numpy的官网有这么一个例子. >>> def f(x,y): ... r ...
随机推荐
- linux下执行.sh文件的方法和语法
linux下执行.sh文件的方法 .sh文件就是文本文件,如果要执行,需要使用chmod a+x xxx.sh来给可执行权限. 是bash脚本么 可以用touch test.sh ...
- css3和html5
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- shell常用的系统变量
$#: 命令行参数的个数 $n : 当前程序的第n个参数,n=1,2,-,9 $0: 当前程序的名称 $?: 执行上一个指令或函数的返回值 $*: 以"参数1,参数 ...
- HDU 2586 How far away ?(经典)(RMQ + 在线ST+ Tarjan离线) 【LCA】
<题目链接> 题目大意:给你一棵带有边权的树,然后进行q次查询,每次查询输出指定两个节点之间的距离. 解题分析:本题有多重解决方法,首先,可用最短路轻易求解.若只用LCA解决本题,也有三种 ...
- node.js爬取数据并定时发送HTML邮件
node.js是前端程序员不可不学的一个框架,我们可以通过它来爬取数据.发送邮件.存取数据等等.下面我们通过koa2框架简单的只有一个小爬虫并使用定时任务来发送小邮件! 首先我们先来看一下效果图 差不 ...
- redsi搭建主从和多主多从
- C# 多线程示例
static void Main(string[] args) { Thread t1 = new Thread(new ThreadStart(TestMethod)); Thread t2 = n ...
- POJ1700----Crossing River
#include<cstdio> #include<iostream> #include<cstring> #include<algorithm> us ...
- Yahoo Programming Contest 2019.D.Ears(DP)
题目链接 菜爆了啊QAQ 记起点为\(S\),终点为\(T\),走过的最靠左的点是\(L\),最靠右的点是\(R\). 那么坐标轴被分成了五段: \(0\sim L-1\):经过\(0\)次: \(L ...
- Android强制关闭某个指定应用 “关闭应用”
强制关闭指定的应用程序: // 传入应用的包名即可kill掉应用 private void forceStopApp(String packageName) { ActivityManager am ...