内容正文:
第3章 Numpy的使用
数组的使用
矩阵的使用
NumPy实用技巧
数组的使用
矩阵的使用
NumPy实用技巧
目 录
CATALOUGUE
初心至善 匠心育人
01
02
03
掌握数组的使用
掌握随机数模块的使用
掌握矩阵的运算
掌握通用函数的使用
学 习 目 标
LEARNING OBJECTIVES
初心至善 匠心育人
NumPy是Python语言的一个扩展程序库,支持大量的维度数组和矩阵运算。NumPy还是一个运算速度非常快的数学库,具有强大的数组广播能力与整合 C/C++/FORTRAN 代码的工具,同时有线性代数、傅里叶变换、随机数生成等功能。本章将详细讲述 NumPy的基本使用。
初心至善 匠心育人
3.1
IPython的使用
初心至善 匠心育人
3.1 数组的使用
本节将从数组的创建、属性、运算、索引操作与形状变换等方面对数组做基本的介绍。
初心至善 匠心育人
3.1.1 数组的创建
NumPy最重要的特点是它具有n维数组对象ndarray,该对象中的元素为一系列同类型(同质)的数据,其中元素的索引从0开始。ndarray数组中的每一个元素在内存中都具有相同大小的存储区域。NumPy数组对象的基本数据结构如图所示。
初心至善 匠心育人
3.1.1 数组的创建
数组对象的数据结构包括数组的类型、维度、形状、内存跨度、实际数据等相关参数。其中,数据类型用于说明数组中元素的数据类型;数组维度用于说明存储数组的维度参数;数组的形状用于说明数组行数和列数;数组的内存跨度用于计算数组的大小;数组的实际数据用于存储数组的元素。
初心至善 匠心育人
3.1.1 数组的创建
NumPy中的数组对象具有同质、存储快捷、易于处理、操作简单和支持数据向量化处理的特点,也正是因为以上特点,使 NumPy成为数据分析师的工作利器。本节将介绍数组的创建方式,具体方式如表所示。
初心至善 匠心育人
3.1.1 数组的创建
表中列举了数组的创建方式,下面将进行详细讲述。
1.array创建一维数组
array类的具体形式如下。
使用array创建数组的具体形式如上述代码,其中,参数object为类数组对象(可以是列表、元组、集合,以下统称对象),该接口会返回一个数组对象;参数 dtype可以指定数据类型,此参数将在数组的性质中讲解,其他参数本书并不涉及。使用array创建数组的具体代码如下。
初心至善 匠心育人
3.1.1 数组的创建
运行结果如图所示。
由图可以看出,使用array创建一个横向为1轴,纵向为0轴包含4个元素的数组(后面章节将会详细讲述有关轴的概念)。
2.array创建多维数组
在创建数组时可以使用嵌套对象创建多维数组,具体代码如下。
初心至善 匠心育人
3.1.1 数组的创建
通过上述结果可以看出,创建多维数组和创建一维数组同样方便,开发者向array类传入不同的参数而改变数组形状。
3.arange创建数组
NumPy为了丰富数组的创建形式,提供了arange()函数用于步进式(等差式)创建数组,该函数的具体形式如下。
通过上述代码可知,arange()函数中参数start与step为可选参数,若只有一个参数,默认该参数为stop(终止值),具体代码如下。
初心至善 匠心育人
3.1.1 数组的创建
4.linspace创建数组
在 NumPy中还提供了一个linspace()函数用于步进式创建数组。linspace()函数与arange()函数的区别在于linspace()函数直接控制指定范围中的数据个数,间接控制步进值;而arange()函数直接控制步进值,间接控制对应范围中的数据个数。linspace()函数的具体形式如下。
初心至善 匠心育人
3.1.1 数组的创建
通过上述代码可以看出,linspace()函数默认创建[start,stop]区间内均匀间隔的50个数组数据。num 参数为默认在此区间中的数据个数。当endpoint为 True时,默认可以包含stop边界值;当为False时,不包含stop边界值(其他参数本节不涉及)。使用linspace()函数创建数组,具体代码如下。
通过上述代码可以看出,linspace()函数在[1,10]区间中生成了1,5.5,10这样的等差数列。
初心至善 匠心育人
3.1.1 数组的创建
5.logspace创建数组
logspace()函数与linspace()函数类似,只是start与stop参数指代的数学参数不同,在linspace()函数中两个参数指代的是闭区间的边界值;而在logspace()函数中,指代的是以10为底的边界值的指数参数,该函数的具体形式如下。
通过上述代码可知,logspace()函