一、numpy
NumPy是一个主要用于多维向量(数组)处理的库,安装方式:
pip install numpy同样为数据处理的库还有pandas,本文暂不介绍。
引入numpy库:
import numpy as np创建数组,由numpy创建的数组,变量类型一般为numpy.ndarray:
# 创建一维数组array_1 = np.array([1, 2, 3, 4, 5])# 创建二维数组array_2 = np.array([[1, 2, 3], [4, 5, 6]])# 创建全零数组array_3 = np.zeros((2, 3)) # 括号里元组表示数组的维度# 创建全一数组array_4 = np.ones((3, 2)) # 括号里元组表示数组的维度# 创建单位矩阵array_5 = np.eye(3) # 括号里的数字表示矩阵的维度
查看数组基本属性:
# 查看数组的维度print(array_2.shape) # Output: (2, 3)# 查看数组的数据类型print(array_2.dtype) # Output: int64# 查看数组的元素个数print(array_2.size) # Output: 6索引和切片:print(array_1[:3]) # Output: [1 2 3]print(array_2[0, 1]) # Output: 2
数学运算:
array1 = np.array([1, 2, 3])array2 = np.array([4, 5, 6])print(array1 + array2) # Output: [5 7 9],逐元素相加print(array1 * array2) # Output: [ 4 10 18],逐元素相乘print(array1 / array2) # Output: [0.25 0.4 0.5 ],逐元素相除
统计运算,可以使用形参“axis”来按某一维度进行统计:
array = np.array([[1, 2, 3], [4, 5, 6]])print(np.sum(array)) # Output: 21,计算数组所有元素的和print(np.mean(array)) # Output: 3.5,计算数组所有元素的平均值print(np.max(array)) # Output: 6,计算数组所有元素的最大值print(np.min(array)) # Output: 1,计算数组所有元素的最小值
还有一些操作是用于矩阵运算的操作,如转置、逆矩阵、维度变换等,功能很丰富,留给读者自己扩展学习。
二、matplotlib
使用过MatLab的都知道其有很强的绘图功能,使用matplotlib这个库可以用于绘出MatLab风格的统计图表。
安装库:
pip install matplotlib引入库(主要使用其pyplot子模块绘图):
import matplotlib.pyplot as plt通常使用list、tuple、np.ndarray等类型的迭代变量作为绘制图时的数据序列输入。使用plt.plot、plt.scatter等函数来绘制折线图、散点图、饼图等:
x = [1, 2, 3, 4, 5]y = [2, 3, 5, 7, 11]# 折线图plt.plot(x, y, label="Line 1", color="blue", linestyle="--", marker="o")# 创建散点图plt.scatter(x, y, color="red", marker="o", label="Data Points")# 创建柱状图plt.bar(categories, values, color="green", label="Bars")
同时,也可以给统计图的标题、x轴、y轴等进行调整,例如添加标题以及x、y轴的名称,并添加图例:
plt.title("Simple Chart")plt.xlabel("Categories")plt.ylabel("Values")# 添加图例plt.legend()
也可以使用plt.subplots函数来在一张图中添加多个子统计图。最后,调用show函数或savefig函数将统计图显示或保存:
# 显示plt.show()# 保存plt.savefig("chart.png", dpi=300)
字体样式、大小、颜色,统计图中线或点的样式、大小、颜色等,matplotlib都有相关控制函数或参数(例如参数linestyle设置折线样式,marker设置三点样式),用于让统计图更加美观。
三、OpenCV
OpenCV是著名且常用的开源计算机视觉处理库,用于操作处理图像或视频等视觉信息,支持Python在内的多种主流编程语言及操作系统。
安装OpenCV:
pip install opencv-python注意,OpenCV还有一个拓展库OpenCV Contrib,包含了一些原库以外的丰富功能,安装方法与OpenCV类似,但是要注意安装版本需要与OpenCV相同,例如安装4.5.5.64版本:
pip install opencv-python==4.5.5.64pip install opencv-contrib-python==4.5.5.64
导入OpenCV:
import cv2此处以处理图像为例,简单说明一下OpenCV的使用:
# 读取图像image = cv2.imread('example.jpg')# 保存图像cv2.imwrite('output.jpg', image)# 显示图像cv2.imshow('Image', image)# 等待用户点击关闭cv2.waitKey(0)
注意通常OpenCV读取图像后,颜色通道保存为BGR顺序,而不是我们熟悉的RGB。并且,图像以MatLike数据类型(由OpenCV定义)保存,因此我们可以简单将图像抽象为三维矩阵(颜色通道为其中一维),并使用如数组切片等方式对其进行操作。
使用OpenCV检测图像边缘:
image = cv2.imread('example.jpg')# 转换为灰度图像gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)# 使用 Canny 算法检测边缘edges = cv2.Canny(gray_image, 100, 200)
检测轮廓:
image = cv2.imread('example.jpg')# 转换为灰度图像gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)# 使用阈值化处理_, thresh = cv2.threshold(gray_image, 127, 255, cv2.THRESH_BINARY)# 查找轮廓contours, _ = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)# 绘制轮廓cv2.drawContours(image, contours, -1, (0, 255, 0), 3)
OpenCV的功能很强大,既有自带的图像滤波或检测函数,也可以使用dnn模块来引用其他AI模型。OpenCV功能很强大,提供了详细的使用文档及参数说明,具体使用方法我们再用到的时候再到网络上查找即可。
往期回顾: