深度学习图像识别:原理与实践》—2.3 Numpy使用详解

网友投稿 826 2022-05-28

2.3 Numpy使用详解

Numpy(Numerical Python的简称)是高性能科学计算和数据分析的基础包,其提供了矩阵运算的功能。Numpy提供的主要功能具体如下。

ndarray—一个具有向量算术运算和复杂广播能力的多维数组对象。

用于对数组数据进行快速运算的标准数学函数。

《深度学习与图像识别:原理与实践》—2.3 Numpy使用详解

用于读写磁盘数据的工具以及用于操作内存映射文件的工具。

非常有用的线性代数,傅里叶变换和随机数操作。

用于集成C /C++和Fortran代码的工具。

除了明显的科学计算用途之外,Numpy还可以用作通用数据的高效多维容器,定义任意的数据类型。这些都使得Numpy能够无缝、快速地与各种数据库集成。

这里提到的“广播”可以这么理解:当两个维度不同的数组(array)运算的时候,可以将低维的数组复制成高维数组参与运算(因为Numpy运算的时候需要结构相同)。

在学习图像识别的过程中,需要将图片转换为矩阵。即将对图片的处理简化为向量空间中的向量运算。基于向量运算,我们就可以实现图像的识别。

2.3.1 创建数组

现在就来关注下Numpy中的一些核心知识点。在Numpy中,最核心的数据结构是ndarray, ndarray代表的是多维数组,数组指的是数据的集合。为了方便理解,我们下面列举一个小例子。

一个班级里学生的学号可以通过一维数组来表示,数组名为a,数组a中存储的是数值类型的数据,分别是1,2,3,4。

其中,a[0]代表的是第一个学生的学号1,a[1]代表的是第二个学生的学号2,以此类推。

一个班级里学生的学号和姓名,可以用二维数组来表示,数组名为b。

类似的,其中b[0,0]代表的就是1(学号),b[0,1]代表的就是Tim(学号为1的学生的名字),以此类推b[1,0]代表的是2(学号)等。

借用线性代数的说法,一维数组通常称为向量(vector),二维数组通常称为矩阵(matrix)。

当我们安装完Anaconda之后,默认情况下Numpy已经在库中了,所以不需要额外安装。下面我们来写一些语句简单测试下Numpy库。

1)在Anaconda的Notebook里输入import numpy as np之后,通过键盘按住Shift+Enter执行,如果没有报错,则说明Numpy已被正常引入,如图2-7所示。

图2-7 在Notebook中引入Numpy

稍微解释下这条语句:通过import关键字将Numpy库引入,然后通过as为其取一个别名np,别名的作用是为了便于后续引用。

2)Numpy中的array()可以直接导入向量,代码如下:

vector = np.array([1,2,3,4])

3)numpy.array()方法也可以导入矩阵,代码如下:

matrix = np.array([[1,'Tim'],[2,'Joey'],[3,'Johnny'],[4,'Frank']])

轮到你来:

首先定义一个向量,然后分配一个变量名vector;定义一个矩阵,然后分配给变量matrix;最后通过Python中的print方法在Notebook中打印出结果。

Numpy 图像处理 深度学习

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【云知易】CSBS云服务器备份 入门 01 创建备份
下一篇:数据管理服务DAS 之 数据库自动化运维功能展播4:慢SQL
相关文章