numpy(七)
NumPy和Matplotlib绘图
Matplotlib 是 Python 的绘图库,它经常与 NumPy 一起使用,从而提供一种能够代替 Matlab 的方案。不仅如此 Matplotlib 还可以与 PyQt 和 wxPython 等图形工具包一起使用。
绘制线性函数图像
Matplotlib 的子模块模块 pyplot 是用来绘制 2D 图像的重要模块。
绘制了函数 y = 2x + 5 的图像:
1 | import numpy as np |
您可以向 plot() 函数中添加格式化字符,来实现不同样式的显示或标记。
常用的格式化字符:
‘-‘
实线样式
‘–’
短横线样式
‘-.’
点划线样式
‘:’
虚线样式
‘.’
点标记
‘,’
像素标记
‘o’
圆标记
‘v’
倒三角标记
‘^’
正三角标记
‘<’
左三角标记
‘>’
右三角标记
‘1’
下箭头标记
‘2’
上箭头标记
‘3’
左箭头标记
‘4’
右箭头标记
‘s’
正方形标记
‘p’
五边形标记
‘*’
星形标记
‘h’
六边形标记 1
‘H’
六边形标记 2
‘+’
加号标记
‘x’
X 标记
‘D’
菱形标记
‘d’
窄菱形标记
‘|’
竖直线标记
‘_’
水平线标记
同时 Matplotlib 还定义了一些颜色字符
‘b’
蓝色
‘g’
绿色
‘r’
红色
‘c’
青色
‘m’
品红色
‘y’
黄色
‘k’
黑色
‘w’
白色
如果想要以圆点的样式,来代替图 1 中的线条样式,那么可以使用“ ob”作为 plot() 的格式化字符。如下所示:
1 | import numpy as np |
绘制正弦波图
1 | import numpy as np |
subplot()
subplot() 允许您在同一画布中的不同位置绘制多个图像,可以理解为对画布按行、列分割
函数的语法格式:
plt.subplot(nrows, ncols, index, **kwargs)
该函数使用三个整数描述子图的位置信息,这三个整数是行数、列数和索引值(此处索引值从1开始),子图将分布在设定的索引位置上。
从右上角增加到右下角。
plt.subplot(2, 3, 5) 表示子图位于 2 行 3 列 中的第 5 个位置上。
下面示例是在同一画布中绘制正弦和余弦图像:
1 | import numpy as np |
bar()柱状图
pyplot 子模块中提供了 bar() 函数来生成柱状图。
下面示例代码,生成了两组数据的柱状图:
1 | from matplotlib import pyplot as plt |
numpy.histogram()
直方图是一种表示数据概率分布的常用图形。
NumPy 提供了 histogram() 函数,它以直方图的形式表示一组数据的概率分布值。histogram() 函数有两个返回值,分别是 hist 与 bin_edges,分别代表直方图高度值与 bin 数值区间范围,
函数的语法格式如下:
histogram(array,bins=10,range=None,weights=None,density=False)
1 | import numpy as np |
numpy.histogram() 将输入数组 a 和 bins 作为两个参数,其中 bins 数组的连续元素作为 bin 区间的边界值
1 | import numpy as np |
plt()
pyplot 子模块的 plt() 函数将一个输入数组和 bins 数组作为参数,并将其输出为直方图。
1 | from matplotlib import pyplot as plt |
NumPy IO操作
NumPy IO 操作是以文件的形式从磁盘中加载 ndarray 对象。在这个过程中,NumPy 可以两种文件类型处理 ndarray 对象,一类是二进制文件(以.npy结尾),另一类是普通文本文件。
我们知道,文件会被保存在不同的计算机上(比如 Linux、Windows、MacOSX 等)。为了不受的计算机架构影响,NumPy 开发团队给 ndarray 对象引入了一种.npy文件格式,通过它来件实现对 ndarray 对象的保存。
numpy.save() 方法将输入数组存储在.npy文件中。
numpy.save(file, arr, allow_pickle=True, fix_imports=True)
file:保存后的文件名称,其文件类型为.npy;
arr:要保存的数组
allow_pickle:可选项,布尔值参数,允许使用 pickle 序列化保存数组对象
fix_imports:可选项,为了便于在 Pyhton2 版本中读取 Python3 保存的数据
1 | import numpy as np |
使用 load() 从 first.npy 文件中加载数据
1 | import numpy as np |
savetxt()
savetxt() 和 loadtxt() 分别表示以文本格式存储数据或加载数据。
savetxt() 语法格式:
np.savetxt(‘filename文件路径’, self.task, fmt=”%d”, delimiter=” “)
filename:表示保存文件的路径
self.task: 要保存数组的变量名
fmt=”%d”: 指定保存文件的格式,默认是十进制
delimiter=” “表示分隔符,默认以空格的形式隔开
1 | import numpy as np |