一、Numpy库
NumPy是Python中科学计算的基础软件包,它提供了众多数学运算工具,这些数学运算工具包括:线性代数中的矩阵和向量运算、傅里叶变换、多维数组运算、数据统计运算以及丰富的数学函数库。在编写机器学习算法时,需要对矩阵、向量进行各种数值计算。这些繁杂的计算都可以交给NumPy来完成;NumPy对数值积分、微分、内插、外推等数学任务的计算也非常有用;在图像处理方面,NumPy也提供了丰富的图像处理函数库来完成图像处理任务,如镜像图像、旋转图像等。
导入Numpy模块
import numpy as np #或 from numpy import *
Numpy查看数组属性
数组元素个数:
b.size
数组维度:
b.ndim
数组元素类型
b.dtype
方法
|
描述 |
ndarray.shape | 返回一个包含数组维度的元组,它也可以用于调整数组大小 |
ndarray.reshape | 用来调整数组大小 |
ndarray.ndim | 返回数组的维数 |
numpy.itemsize | 返回数组中每个元素的字节单位长度 |
numpy.empty 方法用来创建一个指定形状(shape)、数据类型(dtype)且未初始化的数组:
numpy.empty(shape, dtype = float, order = ‘C‘)
运用:
>>> np.array([1, 2, 3, 4, 5]) # 把列表转换为数组 array([1, 2, 3, 4, 5]) >>> np.array((1, 2, 3, 4, 5)) # 把元组转换成数组 array([1, 2, 3, 4, 5]) >>> np.array(range(5)) # 把range对象转换成数组 array([0, 1, 2, 3, 4]) >>> np.array([[1, 2, 3], [4, 5, 6]]) # 二维数组 array([[1, 2, 3], [4, 5, 6]]) >>> np.arange(8) # 类似于内置函数range() array([0, 1, 2, 3, 4, 5, 6, 7]) >>> np.linspace(0, 10, 11) # 等差数组,包含11个数 array([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.]) >>> np.linspace(0, 10, 11, endpoint=False) # 不包含终点 array([ 0. , 0.90909091, 1.81818182, 2.72727273, 3.63636364, 4.54545455, 5.45454545, 6.36363636, 7.27272727, 8.18181818, 9.09090909]) >>> np.logspace(0, 100, 10) # 对数数组 array([ 1.00000000e+000, 1.29154967e+011, 1.66810054e+022, 2.15443469e+033, 2.78255940e+044, 3.59381366e+055, 4.64158883e+066, 5.99484250e+077, 7.74263683e+088, 1.00000000e+100]) >>> np.logspace(1,6,5, base=2) # 对数数组,相当于2 ** np.linspace(1,6,5) array([ 2. , 4.75682846, 11.3137085 , 26.90868529, 64. ]) >>> np.zeros(3) # 全0一维数组 array([ 0., 0., 0.]) >>> np.zeros((3,1)) # 全0二维数组,3行1列 array([[ 0.], [ 0.], [ 0.]]) >>> np.zeros((1,3)) # 全0二维数组,1行3列 array([[ 0., 0., 0.]])
Numpy中的索引和切片
import numpy as np #slice(start,stop, step) a = np.arange(10) # [0 1 2 3 4 5 6 7 8 9] s = slice(2,7,2) # 从数组索引为 2开始,到7结束,步长为2 ——> 2 4 6 print a[s] # [2 4 6] s2 = slice(3,8,1) # stop不会包含在内 print(a[s2])# [3 4 5 6 7] # 我们可以直接将切片数据通过冒号的间隔方式直接传递 b = np.arange(10) # [0 1 2 3 4 5 6 7 8 9] print(b[2:7:2]) # [2 4 6] # 如果只输入一个参数,则将返回与索引对应的单个项目 c = b[3] print(c) # 3 # 如果使用a:,则从该索引向后的所有项目将被提取。 d = b[3:] print(d) # [3 4 5 6 7 8 9] # 如果使用两个参数(以:分隔),则对两个索引(不包括停止索引)之间的元素以默认步骤进行切片。 e = b[3:7] print(e) # [3 4 5 6] # 如果只传冒号 类似与python的拷贝 f = b[:] print(f) # [0 1 2 3 4 5 6 7 8 9]
二、Matplotlib库
matplotlib 是提供数据绘图功能的第三方库,其pyplot 子库主要用于实现各种数据展示图形的绘制:matplotlib 库由一系列有组织有隶属关系的对象构成,这对于基础绘图操作来说显得过于复杂。因此,matplotlib 提供了一套快捷命令式的绘图接口函数,即pyplot 子模块。pyplot 将绘图所需要的对象构建过程封装在函数中,对用户提供了更加友好的接口。pyplot 模块提供一批预定义的绘图函数,大多数函数可以从函数名辨别它的功能。
导入Mataplotlib模板
import matplotlib.pyplot as plt import numpy as np
plt 库的读取和显示函数
函数 | 描述 |
plt.legend() | 在绘图区域中方式绘图标签(也称图注) |
plt.show() | 显示创建的绘图对象 |
plt.matshow() | 在窗口显示数组矩阵 |
plt.inshow() | 在axes上显示图像 |
plt.imsave() | 保存数组为图像文件 |
plt.imread() | 从图像文件中读取数组 |
基本图像
fig = plt.figure() #创建一个新的图像 plt.subplot(2,2,1) #给图像划分区域 x = np.linspace(0,10,200) plt.plot(x,x**2,x,x) plt.subplot(2,2,2) plt.plot(x,x**3) plt.subplot(2,1,2) plt.plot(x,np.sin(x)) plt.show()
正弦波实例
import numpy as np import matplotlib.pyplot as plt # 计算正弦曲线上点的 x 和 y 坐标 x = np.arange(0, 3 * np.pi, 0.1) y = np.sin(x) plt.title("sine wave form") # 使用 matplotlib 来绘制点 plt.plot(x, y) plt.show()
三、Bingo的成绩
原文:https://www.cnblogs.com/hwb-znnsyw/p/12839705.html