9.2.1 NumPy运算(课件)-《程序设计基础(Python)》同步教学(电子工业出版社)

2024-08-10
| 18页
| 56人阅读
| 9人下载
普通

内容正文:

任务9.2 数据可视化库matplotlib的使用 解析中国夏奥之旅 【任务描述】 2022年冬奥会在北京的举行,这让小T有了回顾中国奥运之旅的想法。他收集了中国参加的历年夏季奥运会奖牌,并希望以图形化的界面呈现奖牌数据,从而去发现中国体育健儿在奥运会上成长、变强的历程。 9.2 数据可视化库matplotlib的使用——解析中国夏奥之旅 9.2 数据可视化库matplotlib的使用——解析中国夏奥之旅 图表Matplotlib库: 图表种类? 怎么绘制? 【任务分析】 用matplotlib库实现数据可视化,从中国体育健儿历年金牌获取数折线图、最近一届夏季奥运会各国金牌数量占比饼图、历年各类奖牌数柱状图来分析中国体育健儿的夏季奥运之旅,思路如下: (1)创建画布,在一块画布上显示这三种图表。 (2)根据数据画出折线图、饼图,柱状图。 (3)保存并显示图表。 9.2 数据可视化库matplotlib的使用——解析中国夏奥之旅 9.2.1 NumPy运算 9.2.2 Matplotlib常见操作 9.2.3 Matplotlib绘制常见图表 9.2.4 任务实现——解析中国夏奥之旅 9.2 数据可视化库matplotlib的使用——解析中国夏奥之旅 9.2.1 NumPy运算 9.2.1 NumPy运算 NumPy是高性能科学计算和数据分析的扩展库,作为多维数据处理工具,可用于存储和处理大型矩阵。 Python中提供了list数据类型,可以作为数组使用。列表中的元素可以是任何对象,因此列表中保存的是对象的指针,对于数值运算来说,这种结构显然不够高效。Python还有一个array模块,可以直接保存数值,和其他编程语言的一维数组类似,但不支持多维数组,也没有函数运算。NumPy正好弥补了这些缺陷。 pip install numpy 在Python中引入NumPy库,可使用如下代码: import numpy as np 1.创建数组 NumPy提供了array()函数创建一维或者多维数组,即ndarray对象,其基本语法格式如下: object:表示想要创建的数组。 dtype:可选参数,表示数组所需的数据类型,若不给定则选择保存数组对象所需的最小类型,默认为None。 ndmin:整型,指定生成数组应该具有的最小维数,默认为None。 np.array(object,dtype,ndmin) 9.2.1 NumPy运算 【例9-7】创建一维或多维数组。 9.2.1 NumPy运算 import numpy as np array1=np.array([1, 2, 3, 4]) #创建一维数组 array2=np.array([[1, 3, 4, 5],[2, 7, 8, 9]]) # 创建二维数组 array3=np.array([[[1, 3, 4, 5],[6, 7, 8, 9]],[[2, 3, 4, 5],[6, 7, 8, 9]], [[3, 3, 4, 5],[6, 7, 8, 9]]])#创建三维数组 print("一维数组: ",array1) print("二维数组: ",array2) print("三维数组: ",array3) 一维数组: [1 2 3 4] 二维数组: [[1 3 4 5] [2 7 8 9]] 三维数组: [[[1 3 4 5] [6 7 8 9]] [[2 3 4 5] [6 7 8 9]] [[3 3 4 5] [6 7 8 9]]] 9.2.1 NumPy运算 函数 说明 np.onces(shape,dtype) 创建shape形状下全部元素为1的数组。shape接收整型或者元组数据,数据类型为dtype,下同 np.eye(shape,dtype) 创建shape形状下对角线元素为1、其他为0的数组 np.zeros((shape,dtype)) 创建shape形状下全部元素为1的数组 np.arrange(起始值,终值,步长) 创建一维数组,在起始值和终值之间间隔步长的所有元素 np.random.random(m,n) 生成m行n列的随机浮点数,浮点数范围为(0,1) np.random.rand(m,n) 返回m行n列、服从0~1均匀分布的随机样本值。随机样本取值范围是[0,1),不包括1 np.random.randn(m,n) 返回m行n列、服从0~1正态分布的随机样本值。随机样本取值范围是[0,1),不包括1 np.random.randint(low,high,size=[m,n]) 返回m行n列随机整型数组,整数取值范围为[low, high)。如果没有写参数high的值,则返回[0,low)的值 表9-5 NumPy常用函数 【例9-8】利用函数创建数组。 9.2.1 NumPy运算 import numpy as np print("onces创建的数组: ",np.ones((2,3))) print("eye创建的数组: ",np.eye(2,3)) print("zeros创建的数组: ",np.zeros((2,3))) print("rand创建的数组: ",np.random.rand(2,3)) print("randint创建的数组: ",np.random.randint(5,10,size=[2,3])) onces创建的数组: [[1. 1. 1.] [1. 1. 1.]] eye创建的数组: [[1. 0. 0.] [0. 1. 0.]] zeros创建的数组: [[0. 0. 0.] [0. 0. 0.]] rand创建的数组: [[0.99139623 0.53916405 0.01325806] [0.44222241 0.94499632 0.24608376]] randint创建的数组: [[6 5 8] [7 7 9]] 2.数组属性 在创建数组之后,可以通过数组属性来了解数组,比如数组的维数、数组的尺寸等。数组主要属性如表9-6所示。 9.2.1 NumPy运算 属性 返回数据类型 说明 ndim int 数组的维数 shape tuple 数组的尺寸,对于n行m列的矩阵,形状为(n,m) size int 数组元素的总数,等于数组shape的乘积 dtype data-type 数组中元素的类型 itemsize int 数组的每个元素的大小(以字节为单位) 表9-6 数组的主要属性及其说明 【例9-9】查看数组的属性。 9.2.1 NumPy运算 # 接例【9-7】 print('array1维度:',array1.ndim) print('array1数据类型:',array1.dtype) print('array1形状:',array1.shape) print('array1元素个数:',array1.size) print('array2维度:',array2.ndim) print('array2数据类型:',array2.dtype) print('array2形状:',array2.shape) print('array2元素个数:',array2.size) print('array3维度:',array3.ndim) array1维度: 1 array1数据类型: int32 array1形状: (4,) array1元素个数: 4 array2维度: 2 array2数据类型: int32 array2形状: (2, 4) array2元素个数: 8 array3维度: 3 array3数据类型: int32 array3形状: (3, 2, 4) array3元素个数: 24 NumPy扩充了原生Python的数据类型,这些数据类型由一个类型名(如float、int)和元素位长的数字组成。在默认情况下,64位Windows操作系统输出的结果为int32,64位Linux或Mac OS操作系统输出的结果为int64。 在NumPy中,所有数组元素的数据类型都是一致的,用dtype属性来查看数组的类型。常见的数据类型如表9-7所示。 9.2.1 NumPy运算 9.2.1 NumPy运算 表9-7 NumPy数组数据类型 类型 说明 bool 用一位存储的布尔类型(值为True或者False) int16unit16 有符号的16位整数(-32768~32767)无符号的16位整数(0~65535) int32unit32 有符号的32位整数()无符号的32位整数 int64unit64 有符号的64位整数无符号的64位整数 float16 半精度浮点数(16位),其中1位表示正负号,5位表示指数,10位表示尾数 float32 半精度浮点数(32位),其中1位表示正负号,8位表示指数,23位表示尾数 float64 半精度浮点数(64位),其中1位表示正负号,11位表示指数,52位表示尾数 complex64 复数,分别用两个32位表示实部和虚部 complex128 复数,分别用两个64位表示实部和虚部 3.数组访问 NumPy因提供高效率的数组运算著称,主要原因是它具有索引的易用性。一维数组的访问、切片均与列表list类似,不再赘述,这里着重介绍多维数组的访问,其基本语法格式如下: m1:m2也可换做由直接索引值组成的元组,如(1,3,5),表示切片索引为1、3、5的数组。 array[m1:m2,n1:n2...] #切片数组索引各维度为[m1,m2),[n1,n2)的数组。 9.2.1 NumPy运算 【例9-10】数组的访问。 9.2.1 NumPy运算 import numpy as np array3=np.array([[[1, 3, 4, 5],[6, 7, 8, 9]],[[2, 3, 4, 5],[6, 7, 8, 9]], [[3, 3, 4, 5],[6, 7, 8, 9]]])#创建三维数组 print(array3[0:1,0:2,0:2]) print(array3[0:1,0:2,(0,1,2)]) [[[1 3] [6 7]]] [[[1 3 4] [6 7 8]]] 程序中的array3[0:1,0:2,0:2]表示切片得到的array3中各维度索引分别为0,(0,1),(0,1)的数组,array3[0:1,0:2,(0,1,2)]表示切片得到array3中各维度索引分别为0,(0,1),(0,1,2)的数组。 边学边练: 创建一个3*2*4的三维数组,并进行如下操作: (1)输出其维数、元素个数。 (2)切片,三个维度对应索引分别为1,(0,1)(0,1)的数组。 9.2.1 NumPy运算 $$

资源预览图

9.2.1 NumPy运算(课件)-《程序设计基础(Python)》同步教学(电子工业出版社)
1
9.2.1 NumPy运算(课件)-《程序设计基础(Python)》同步教学(电子工业出版社)
2
9.2.1 NumPy运算(课件)-《程序设计基础(Python)》同步教学(电子工业出版社)
3
9.2.1 NumPy运算(课件)-《程序设计基础(Python)》同步教学(电子工业出版社)
4
9.2.1 NumPy运算(课件)-《程序设计基础(Python)》同步教学(电子工业出版社)
5
9.2.1 NumPy运算(课件)-《程序设计基础(Python)》同步教学(电子工业出版社)
6
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。