数据分析
matlab
Numpy + scipy + pandas +matplotlib
数据计算 +科学应用+数据清洗+数据可视化
1 Numpy概述
1 基于c语言的python接口的数值算法库
2 开源免费
3 弥补了python语言在数值计算方面的短板
4 作为常用科学计算工具的底层支撑
2 Numpy的性能
1 简化代码编写,提高开发效率
2 通过优化底层实现,提高运行速度
基础:
1 数组
2 Numpy中的数组是ndarray类实例化的对象:
实例数据:数组的内容
元数据:对数组的描述
大部分对数组的操作仅仅是对元数据的操作,以此提高执行性能
3 Numpy中的数组必须是同质的,即所有元素的数据类型必须完全相同
4 dtype和shape属性分别表示元素类型和维度
5 实例化
np.arange(起始值,终止值,步长)
默认起始值0
默认步长:1
np.array(任何可被解释为数组的序列)
6 类型转换astype(目标类型)->转换后的新数组
7 '<U21' 表示字符串,其中每个字符都是小端字节序的21位Unicode字符
3 多维数组和元素索引
数组的维度表示为一个元组:(高维度数->低维度数)
一维数组,6个元素:(6,)
二维数组,2行3列:(2,3)
三维数组,2页3行4列:(2,3,4)
1 通过下标运算符访问数组中的元素
2 数组[页标][行标][列标]
3 数据类型
存储形式,处理方式
1 内置类型
布尔型
bool_ : True/False
整型
有符号 :int8/int16/int32/int64
无符号 : uint8/uint16/uint32/uin64
浮点型: float16/float32/float64
复数型 :complex64/complex128
2 复合类型
有多个相同或不同类型的字段组合而成的类型
np.array(..,dytpe=复合类型)
3 类型字符码
bool_:?
有符号整型:i1/2/4/8
无符号整型:u1/2/4/8
浮点型: f2/4/8
复数型:c8/16
字符串:U<字符数>
日期时间:M
字节序(针对多字节整型):</>/=表示小端/大端/硬件
4 切片
数组[起始:终止:步长]
默认起始:首(正步长)/尾(负步长)
默认终止:尾后(正步长)/首前
默认步长:1
5 变维
1 视图变维:元数据独立,实际数据共享
1 数组.reshape(新维度) ->新数组
元素数和维度数必须匹配
2 数组.ravel() -> 得到的是一维数组
3 复制变维:元数据和实际数据都是独立的
数组.flatten() -->一维数组 (数组运算不会改变)
4 就地变维:修改元数据的值(维度信息,不会产生新的数组对象)
数组.shape = 新维度
数组.resize(新维度)
6 组合拆分
1 垂直组合:沿着垂直方向组合两个小的同维数组为一个大数组
np.vstack((上,下)) np.concatenate((上,下),axis=0)
axis : 轴向,用维度的下标表示 0为行,,1为列
2 水平组合:沿着水平方向组合两个小的同维数组为一个大数组
np.hstack((左,右))
np.concatenate((左,右),axis=1)
3 深度组合:沿着纵深方向组合两个小的同维数组为一个大数组
np.dstack((前,后)) 会升维
4 行组合:以两个一维数组按照行的方式组合成一个二维数组
np.row_stack((上,下))
5 列组合:以两个一维数组按照列的方式组合成一个二维数组
np.column_stack((左,右))
6 垂直拆分:将一个大的数组沿着垂直方向拆分成若干个小的同维数组
np.vsplit(被拆分数组,拆分份数)
np.split(被折分数组,拆分份数,axis=0)
7 水平拆分:将一个大的数组沿着水平方向拆分成若干个小的同维数组
np.hsplit(被折分数组,拆分份数)
np.split(被折分数组,拆分份数,axis=1)
8 深度拆分:将一个大的数组沿着纵深方向拆分成若干个小的同维数组
np.dsplit(被拆分数组,拆分份数)
7 ndarray的属性
dtype -元素的数据类型
shape - 数组的维度
ndim - 数组的维数,len(shape)
size - 数组的元素数,shape中元素相乘
itemsize - 元素字节数,与dtype相关
nbytes - 总字节数,size x itemsize
T - 转置视图
real - 复数数组的实部视图
imag - 复数数组的虚部视图
flat - 扁平迭代器
8 ndarray <==>list
np.array(列表) 二:数据可视化(Matplotlib)
1 基本绘图
plot(水平坐标,垂直坐标)
2 线型,线宽和颜色
plot(...,linestyle=线型,linewidth=线宽,color=颜色,...)
线形:[-]/--/:./o/o-/...
线宽:0-oo
color:dodgerblue/orangeered/limegreen/red/blue/...
3 设置坐标范围
xlim(水平坐标最小值,水平坐标最大值)
ylim(水平坐标最大值,水平坐标最大值)
坐标范围越大,图形越小,反而反之。
4 设置坐标刻度
xticks([水平轴刻度位置])
yticks([垂直轴刻度位置])
表示数学的字符pi( [r'$-\pi$'] )
表示数学2分之pi ( r'$-\frac{\pi}{2}$' )
5 设置坐标轴属性
ax = gca() # 获取当前坐标轴图
ax.spines['left'] - 左纵轴
ax.spines['left'].set_position(('data', 0))
ax.spines['right'] - 右纵轴
ax.spines['top'] - 上横轴
ax.spines['bottom'] - 下横轴
XX轴.set_position((坐标系,坐标值)) #设置位置 XX轴.set_color(颜色) #设置颜色
ax.spines['top'].set_color('none')
6 图例
plot(...,label=图例标签,...)
legend([loc=显示位置])
7 添加特点
scatter(水平坐标,垂直坐标,s=大小,marker=点型,
edgecolor=边缘色,facecolor=填充色,zorder=Z顺序)
8 备注
annotate(
备注文本,
xy =目标坐标,
xycoords =目标坐标系,
xytext=文本坐标,
textcoords=文本坐标系,
fontsize=字体大小,
arrowprops=箭头属性)
9 图形(窗口)对象
figure(窗口名(标题栏文本),figsize=大小,dip=分辨率,facecolor=颜色)
如果与指定窗口名对应的图形对象不存在,那么就新建一个图形窗口,如果已存在,那么不会再新建图形窗口,而是将已存在的那个图形窗口设置为当前窗口
title(窗口标题,fontsize=字体大小)
xlabel(垂直轴标签,fontsize=字体大小)
tick_params(labelsize=刻度标签字体大小)
grid(linestyle=网格线型)
10 子坐标图
1 矩阵布局
subplot(行数,列数,图号)
tight_layout() #紧凑布局
2 删格布局
删格定位器 = mp.GridSpec(行数,列数)
subplot(删格定位器[行,列] 3 自由布局
axes([左,底,宽,高]) # 归一化单位
11 刻度定位器
xxxLocator(定位规则)
ax = gca()
ax.xaxis 水平坐标
ax.yaxis 垂直坐标
坐标轴.set_major_locator(刻度定位器) #主刻度
坐标轴.set_minor_locator(刻度定位器) #次刻度
mp.axis('off') #关闭坐标轴
12 区域填充
fill_between(水平坐标,起点垂直坐标,终点垂直坐标,color=颜色,alpha=透明度 )
13 条形图
bar(水平坐标,绝对高度,相对宽高,color=颜色,label=图例标签,alpha=透明度)
14 饼图
pie(值数组,间隙数组,标签数组,颜色数组,shadow =是否带阴影,startangle=起始角度)
15 等高线图
contour(点阵X坐标矩阵,点阵Y坐标矩阵,点阵Z坐标矩阵,梯度数,colors=颜色,linewidths=线宽)
16 热力图 17 网格线
ax = gca()
ax.grid(which="major/minor",axis='x/y/both')
18 半对数坐标
semi(同plot)
19 极坐标
gca(projection='polar') #创建极坐标图
plot/scatter(极角,极径)
20 三维坐标系
from mp;_toolkits.mplot3d import axes3d
1 三维散点
ax.scatter(x坐标,Y坐标,Z坐标,s= 大小,marker=点形 ,
edgecolor=边缘色,fancecolor=填充色,
zorder=Z顺序)
2 空间曲面
ax.plot_surface(点阵X坐标,点阵Y坐标矩阵,点阵Z坐标矩阵,rstride=行跨距,
cstride=列跨距,cmap=颜色映射)
ax.plot_wireframe(点阵X坐标矩阵,点阵Y坐标矩阵,点阵Z坐标矩阵,
rstride=行跨距,cstride=列跨距,linewidth=线宽,color=颜色)

matplotlib基本函数的更多相关文章

  1. python可视化_matplotlib

    对于Python数据可视化库,matplotlib 已经成为事实上的数据可视化方面最主要的库,此外还有很多其他库,例如vispy,bokeh, seaborn,pyga,folium 和 networ ...

  2. 给深度学习入门者的Python快速教程 - numpy和Matplotlib篇

    始终无法有效把word排版好的粘贴过来,排版更佳版本请见知乎文章: https://zhuanlan.zhihu.com/p/24309547 实在搞不定博客园的排版,排版更佳的版本在: 给深度学习入 ...

  3. numpy和Matplotlib篇---2

    原创博文,转载请标明出处--周学伟http://www.cnblogs.com/zxouxuewei/ 5.3 Python的科学计算包 - Numpy numpy(Numerical Python ...

  4. 『科学计算』科学绘图库matplotlib学习之绘制动画

    基础 1.matplotlib绘图函数接收两个等长list,第一个作为集合x坐标,第二个作为集合y坐标 2.基本函数: animation.FuncAnimation(fig, update_poin ...

  5. Python 的 Matplotlib 画图库

    Matplotlib安装 NumPy库方便数值运算,但枯燥的数据并不利于人们的直观理解. 数据需要可视化. Matplotlib:一个数据可视化函数库 使用前需要安装  利用Python自带 ...

  6. python数据分析工具 | matplotlib

    不论是数据挖掘还是数学建模,都免不了数据可视化的问题.对于 Python 来说,matplotlib 是最著名的绘图库,它主要用于二维绘图,当然也可以进行简单的三维绘图.它不但提供了一整套和 Matl ...

  7. python数据分析之numpy、matplotlib的使用

    5.3 Python的科学计算包 - Numpy numpy(Numerical Python extensions)是一个第三方的Python包,用于科学计算.这个库的前身是1995年就开始开发的一 ...

  8. python安装numpy、scipy和matplotlib等whl包的方法

    最近装了python和PyCharm开发环境,但是在安装numpy和matplotlib等包时出现了问题,现总结一下在windows平台下的安装方法. 由于现在找不到了工具包新版本的exe文件,所以采 ...

  9. matplotlib 高级用法实例--共享x轴

    http://localhost:8888/notebooks/duanqs/matplotlib_advanced_example.ipynb 我不会弄呀, 刚才从matplotlib文档里吧示例用 ...

随机推荐

  1. 对图片清晰度问题,纠结了一晚上。清理了下Libray,瞬间变清晰了,泪奔

    对图片清晰度问题,纠结了一晚上.清理了下Libray,瞬间变清晰了,泪奔

  2. talking data 集成

    talking data 集成需要手动添加libz.td

  3. 从源码角度解析Netty的React模式是如何工作的

    Netty 支持多种实现方式,比如nio,epoll 等,本文以nio的实现方式进行讲解. 1.EventLoop : 事件循环看,简单来说就是一个死循环监听事件,如果事件来了,处理掉.通常做法就是开 ...

  4. Egret入门学习日记 --- 第十篇(书中 2.9~2.13节 内容)

    第十篇(书中 2.9~2.13节 内容) 好的 2.9节 开始! 总结一下重点: 1.之前通过 ImageLoader 类加载图片的方式,改成了 RES.getResByUrl 的方式. 跟着做: 重 ...

  5. YIIMP矿池搭建

    本文将以Verge(x17)和Raven(x16rv2)为例子来说明多算法矿池YIIMP的搭建过程. 1 环境准备 1.1 准备Ubuntu 准备虚拟机或物理机,操作系统为Ubuntu 18.04,之 ...

  6. 51.Qt-使用ajax获取ashx接口的post数据

    由于当前C++项目需要使用ajax库去post调用ashx接口,接口地址如下所示: 需要传递的参数如下: 然后发现qml比较好调用ajax.js库,所以本章通过C++界面去获取qml方法来实现调用as ...

  7. python微信服务号关注授权、消息推送流程

    阅读目录 推送的方式: 微信推送的流程: 流程分析: 给用户推送消息功能 推送的方式: 短信推送(第三方) 邮件推送 微信推送 公众号:认证的公众号(个人的认证公众号每天只能发一篇文章),粉丝可以跟公 ...

  8. 判断scrollView的滑动方向(二)

    在上一篇文章<判断scrollView的滑动方向>中谈到的第二种方法是根据滑动速率来判断的. 今天将通过滑动过程中的坐标差来判断 - (void)scrollViewDidScroll:( ...

  9. 轮播图CSS

    css3中的animation:动画名 持续时间 动画的速度曲线 动画开始之前的延迟 动画播放的次数 是否应该轮流反向播放动画 动画播放次数:n(定义应该播放多少次动画) : infinite(无限循 ...

  10. Linux 时间以及时间间隔的简单处理.

    最近想知道自己的一个部署脚本的耗时, 中午时间看了一下最简单的Linux 时间函数的处理 我这里的处理非常简单, 仅仅是够用而已. 处理过程. 1. 获取当前时间: time1=`date` 或者是 ...