《深度学习与图像识别:原理与实践》—2.3 Numpy使用详解
2.3 Numpy使用详解
Numpy(Numerical Python的简称)是高性能科学计算和数据分析的基础包,其提供了矩阵运算的功能。Numpy提供的主要功能具体如下。
ndarray—一个具有向量算术运算和复杂广播能力的多维数组对象。
用于对数组数据进行快速运算的标准数学函数。
用于读写磁盘数据的工具以及用于操作内存映射文件的工具。
非常有用的线性代数,傅里叶变换和随机数操作。
用于集成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中打印出结果。
- 点赞
- 收藏
- 关注作者
评论(0)