欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    Python数据分析与可视化教案2.8 Python的NumPy库.docx

    • 资源ID:60304517       资源大小:28.40KB        全文页数:8页
    • 资源格式: DOCX        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Python数据分析与可视化教案2.8 Python的NumPy库.docx

    课 题2.8 Python 的 NumPy 库课 型讲练授课班级大数据授课时数4教学目标1 .能够创立一维和二维数组。2,能够对数组进行属性查询。3 .能够对数组进行切片操作。教学重点1,能够创立一维和二维数组。2.能够对数组进行属性查询。教学难点1.能够对数组进行切片操作。在构建DataFrame的数据集时,有一种方法就是借助于二维数组创立,学情分析学情分析因此,掌握二维数组对于后续内容的学习很重要。NumPy是Python的开源的科学计算机工具包,是一个高级数值编程工具,通过 NumPy可以不用遍历循环就实现大型的矩阵的计算。NumPy可以实现生成随机数、 线性代数、傅里叶变换等功能。同时,NumPy可以保存任意类型的数据,这使得Numpy 可以快速而高效地处理各种数据。NumPy提供了许多高级的数值编程工具,如矩阵 数据类型、矢量处理,以及精密的运算库,NumPy专为进行严格的数字处理而产生。在导入NumPy的时候,一般需要先使用一行代码,代码如下:import numpy as np一、创立数组对象1.创立一维数组当数组中每个元素都只带有一个下标时,这样的数组就是一维数组,一维数组是 由数字组成的顺序排序单一数组。一维数组是计算机程序中最基本的数组,二维及多 维数组可以看作是一维数组的屡次叠加产生的。Python提供array函数可以创立一维数组,通过array函数创立一维数组类似于 创立列表list,但是array函数没有各种运算函数,因此不太适合进行各种复杂计算。 利用array函数创立一维数组的一般格式为:np.array(valuel, value2/*)例如代码如下:import numpy as nparrl = np.array(l,2,3)print("创立的一维数组为arrl为:n",arrl)输出结果如图2-*所示。Run:2-8AC:UsersliliangAnaconda3python.exe C:/Users/liliang/PycharmProjects/sjfx/2-8.py创立的一维数组为arE为:1 2 3UrpProcess finished with exit code 0图2-*创立一维数组例如结果2 .创立二维数组二维数组与一维数组相似,但是用法上耍比一维数组复杂一点。仅从表现形式上 看,m行n列二维数组就是一个m*n矩阵。利用array函数也可以创立二维数组,利 用aiTay函数创立二维数组的一般格式为:np.array(valuell, value 12, J,Ivalue21, value22,/)其中,在创立二维数组时,需要加2层括号,这一点与创立一维数组不同。例如代码如下:arr2 = np.array(l,2,3,2,3,4)print("创立的2*3的二维数组为:n”,arr2)arr3 = np.array(l,2,3,2,3,4,3,4,5)print("创立的3*3的二维数组为:n”,arr3)输出结果如图2-*所示。Run:2-8AC:UsersliliangAnaconda3python.exe C:/Users/liliang/PycharmProjects/sjfx/2-8.py创立的2*3的二维数组为arr2为:士1123 »2 3 4共创立的3*3的二维数组为arr3为:»1 2 32 3 434 5Process finished with exit code 0图2-*创立二维数组例如结果3利用arange和linspace等方法生成数组利用array函数创立数组,其方法都是先创立一个序列,然后再转换成数组,这 样的创立数组的效率显然不高,因此NumPy提供专门的函数用来创立数组,如arange 函数和linspace函数。(1)利用arange函数生成数组arange函数类似于Python的自带函数range, arange函数的一般格式为:np.arange (start,stop,step)其中,start表示初始值,stop表示终止值,并且终止值不能取到的,st叩表示步 长。(2)利用linspace函数生成数组linspace函数可以不通过间隔而是元素个数的方式成数组,linspace函数一般格式 为:np.linspace (start,stop,n)其中,start表示初始值,stop表示终止值,并且终止值是可以取到的,这一点与 arange函数不同,n表示生成数组的元素个数。例如代码如下:print(n0到1之间以0.2为间隔的数组为:*np.arange(0,l,0.2)print。到1之间以0.2为间隔的数组为二npinspace(0,0.8,5)输出结果如图2-*所示。Run:2-8AC:UsersliliangAnaconda3python.exe C:/Users/liliang/PycharmProjects/sjfx/2-8.py。到1之间以0.2为间隔的数组为:0.0.2 0.4 0.6 0.8。到1之间以0.2为间隔的数组为:0. 0.2 0.4 0.6 0.85s =5Process finished with exit code 0图2-*利用arange和linspace等方法生成数组例如结果二、查看数组属性为了能够更好地理解数组,了解数组的基本属性是十分有必要的,数组的基本属 性如表2-*所示。表2-*数组属性及其作用表例如代码如下:属性作用ndim表示数组的维度。shape表示数组形状,结果为(m,n)表示m行n列,shape0表示行数,shapelW示列数。size表示数组的元素总数。dtype表示数组中兀素的类型。print(narrl的维度为:dnarr2的维度为:小皿仃3的维度为:矛%(arr 1 .ndim,arr2.ndim,arr3.ndim)print("arr2:n",arr2)print(Harr2 的形状为:arr2.shape)print(narr2 的行数为:",air2.shape0)print(narr2 的列数为:”,an2shapel)print(narr2 的元素总数为:",arr2.size)print(narr2 的元素类型为:",arr2.dtype)输出结果如图2-*所示。Run:2-8AC:UsersliliangAnaconda3python.exe C:/Users/liliang/PycharmProjects/sjfx/2-8.pyarrl的维度为:1arr2的维度为:2-> $ arr3的维度为:2arr2:-12 32 3 4 arr2的形状为:(2, 3)arr2的行数为:2arr2的列数为:3arr2的元素总数为:6arr2的元素类型为:int32Process finished with exit code 0图2-*查看数组属性例如结果三、数组的索引与切片1 .一维数组的索引与切片一维数组的索引与切片与列表类似,一维数组的索引和切片一般格式为:arrayindexarray start:last:step其中,index表示索引位置,并且是从。开始的。start表示起始索引,start可以 省略,默认是0。last表示终止索引,并且这个终止索引是不能取到的。step表示索 引步长,即索引之间的间隔。例如代码如下:arr4 = np.arange( 11,20)print("数组为:arr4)print("索引号1对应的元素为:",arr4l)print("索引号1到索引号4对应的切片为二arr4l:5)输出结果如图2-*所示。Run:2-8AC:UsersliliangAnaconda3python.exe C:/Users/liliang/PycharmProjects/sjfx/2-8.py数组为:11 12 13 14 15 16 17 18 19 索引号1对应的元素为:12> 名 索弓I号1到索引号4对应的切片为:12 13 14 15 2”. Process finished with exit code 0W图2-* 一维数组的索引与切片例如结果.二维数组的索引与切片二维数组两个维度(行与列)都有索引,在访问的时候,要用逗号隔开,并且是 先访问行索引再访问列索引。二维数组的索引和切片一般格式为:array row_index,column_indexarrayrow_start:row_last, column_start:column_last其中,row_index表示行索引位置,columnjndex表示列索引位置,并且都是从0 开始。row_start和column_start表示行与列的起始索引,默认是0。row_last和 columnast表示行与列的终止索引,并且这个终止索引对应的值是不能取到的。例如代码如下:arr5 = np.array(l ,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16)print("数组为:n”,arr5)print(”行索引为1,列索引为2对应的元素为:n”,arr5l,2)print(”行索引为1到2,列索引为2到3对应的元素为:n”,arr5l:3,2:4)print(”行索引为2的整列数据为二arr52,:)print(咧索引为3的整列数据为:",arr5:,3)输出结果如图2-*所示。Run:2-8>C:UsersliIiangAnaconda3python.exe C:UsersliliangPycharmProjectspython2-8.py数组为: 1 2 3 4二方 5 6 7 8 二 9 10 11 12 » .13 14 15 16行索引为1,列索引为2对应的元紊为:i 7行索引为1到2,列索引为2到3对应的元素为:7 8 11 12行索引为2的整列数据为:9 10 11 12列索引为3的整列数据为:4 8 12 16Process finished with exit code 0图2-*二维数组的索引与切片例如结果四、NumPy随机数NumPy有强大的生成随机数的功能,而与随机数相关的函数都在random模块中, 其中包含了可以生成多种概率分布的随机数函数,但是需要注意的是,使用numpy 库中的random模块和直接使用python中random模块在一些函数上有不同的使用方 法。比方生成随机整数randint,在numpy库中是使用random.randint是不能取到终止 整数的,而在python的random模块中,使用randint是可以取到终止整数的。1.生成随机小数(1)生成一维随机小数生成1个0到1之间随机小数的一般格式为:np.random.rand()生成x个。至U 1之间随机小数组成的一维数组的一般格式为:np.random.rand(x)生成1个。到y (y为整型)之间随机小数的一般方法为:np.random.randOy生成x个0到y (y为整型)之间随机小数组成的一维数组的一般方法为: np.random.rand(x)*y例如代码如下:print。生成1个0到1之间的小数”,。)print("生成 5 个 0 到 1 之间的小数”,np.random.rand(5)print("生成 1 个 0 至2 之间的小数”,np.random.rand()*2)print("生成 5 个 0 至U 2 之间的小数”,np.random.rand(5)*2)输出结果如图2.*所示。Run:2-8AC:UsersliliangAnaconda3python.exe C:/Users/liliang/PycharmProjects/sjfx/2-8.py生成1个0到1之间的小数0.33359570130654226生成5个。到 1 之间的小数0.55651845 0.28576281 0.91099991 0.33486916 0.11101831 rp 生成1个0到2之间的小数4 生成5个。到2之间的小数1.70919045 1.26134277 0.98300627 1.65530256 0.80848382X 二Process finished with exit code 0图2-*生成一维随机小数例如结果(2)生成二维随机小数生成m行n列的0到1之间随机小数二维数组的一般方法为:np.random.rand(m,m)例如代码如下:print("生成 2*2 的 0 到 1 的随机小数二维数组:n”,np.random.rand(2,2)print("生成 2*3 的 0 到 2 的随机小数二维数组:n”,np.random.rand(2,3)*2)输出结果如图2-*所示。 Run:2-8AC:UsersliliangAnaconda3python.exe C:/Users/liliang/PycharmProjects/sjfx/2-8.py生成2*2的。到1.的随机小数二维数组:0.44104325 0.8217508 0.50999213 0.45840465R 生成2*3的。到2的随机小数二维数组:, 存 1.13204545 0.09509508 0.08085505 1.84992171 0.43329497 1.29572153Process finished with exit code 0图2-*生成二维随机小数不例结果.生成随机整数生成随机整数可以使用randint函数,randint函数的一般方法为:np.random.randint(start,stop,size=m,n)其中,start表示起始整数,stop表示终止整数,起始整数能取到而终止整数不能 取到。size= m,n表示生成m行n列二维数组,size默认为None,即默认生成一个随机整数。例如代码如下:print("生成 1 个 0 到 10 的随机整数:n”,np.random.randint( 11)print("生成 1 个 5 到 15 的随机整数:nnp.random.randint(5,l6)print(n生成 3*3 的 1 到 100 随机整数二维数组:n",np.random.randint(l,101,size=3,3)输出结果如图2-*所示。Run:2-8AC:UsersliliangAnaconda3python.exe C:/Users/liliang/PycharmProjects/sjfx/2-8.py生成1个0到1。的随机整数:7« 方生成1个5到15的随机整数:2 11»_ 生成3*3的1到100的随机整数二维数蛆:49 29 7548 7 614 79 92Process finished with exit code 0图2-*生成随机整数例如结果3 ,生成正态分布随机数正态分布是数据分布中一种常用的分布,NumPy提供了 randn函数用来生成正态 分布的随机数。生成x个正态分布随机数组成的一维数组的一般方法为:np.random.randn(x)生成m行n列的正态分布随机数二维数组的一般方法为:np.random.randn(m,n)例如代码如下:print("生成10个正态分布的随机数:n”,np.random.randn(10)print("生成3*3的正态分布随机数的二维数组:n”,np.random.randn(3,3)输出结果如图2-*所示。Run:2-8>C:UsersliliangAnaconda3python.exe C:/Users/liliang/PycharmProjects/sjfx/2-8.py生成1。个正态分布的随机数:-1.38082781 -0.23040801 -0.24409116 0.07119311 0.68619652 0.89391238二 万 2,29635133 -2.04009219 -1.37541982 -0.60174799 丑生成3*3的正态分布随机数的二维数组:,一 1.19116624 1.76131985 0.46618962 -0.43352108 1.47914566 -0.48643985 1.5802139 -0.38085871 -0.65620729Process finished with exit code 0图2-*生成随机整数例如结果五、NumPy的操作1 .数组转置数组转置操作是指将行与列对调,即第1行变成第1歹!J,第2行变成第2行,以 此类推。在NumPy中,数组转置可以使用T方法来实现。例如代码如下:arr6 = np.array(l,2,3,4,5,6)print(narr6 =nn,arr6)print(narr6转置后的结果为:narr6.T)输出结果如图2-*所示。Run:2-8AC:UsersliliangAnaconda3python.exe C:/Users/liliang/PycharmProjects/sjfx/2-8.pyarr6 =二:1 2 3二 方4 5 6丑 arr6转置后的结果为:»-1 4T ”3 6Process finished with exit code 0图2-*数组转置例如结果.数组变形在对数组进行操作时,经常需要对数据的形状进行改变,在NumPy中,可以使 用reshape函数改变数组的形状。reshape函数一般方法为:array.reshape(m,n)其中,array表示需要改变的原数组,m和n分别表示转换后的新数组的行数和 列数。例如代码如下:arr7 = np.arange(lO)print("原数组为:n”,arr7)arr7.reshape(2,5)print("改为 2 行 5 列后的数组为:n”,arr7.reshape(2,5)输出结果如图2-*所示。Run:2-8AC:UsersliliangAnaconda3python.exe C:/Users/liliang/PycharmProjects/sjfx/2-8.py原数组为:0123456789 rp 改为2行5列后的数组为:20123 4» 5678 9WProcess finished with exit code 0图2-*数组变形例如结果任务实训任务1:用两种方法创立由1到9九个数字组成的3*3的二维数组。具体代码如下:_arr8 = np.array(l,2,3,4,5,6,7,8,9)print("直接创立二维数组:n”,arr8)arr9 = np.arange( 1,10).reshape(3,3)print("通过 reshape 创立二维数组:n”,arr9)输出结果如图2-*所示。Run:2-8AC:UsersliliangAnaconda3python.exe C:/Users/liliang/PycharmProjects/sjfx/2-8.py直接创立二维数组:1 2 34 5 6=17 8 9»_ 通过reshape创立二维数组:1 2 34 5 67 8 9Process finished with exit code 0图2-*任务1输出结果任务2:创立由1到9九个数字组成的3*3的二维数组,并计算每一行的平均数。(可以用mean函数求平均值)arrlO = np.arange( 1,10).reshape(3,3)print("创立二维数组:n”,arrlO)columns_count = arrlO.shape 1 for i in range(columns_count):print("第d行所有元素的平均值为:.2F%(i+l,arrlOi,:.mean()输出结果如图2-*所示。Run:2-8>C:UsersliliangAnaconda3python.exe C:/Users/liliang/PycharmProjects/sjfx/2-8.py创立二维数组:_1 2 3 rp4 5 6过7 8 9X 7 第1行所有元素的平均值为:2.00;第2行所有元紊的平均值为:5.0。 第3行所有元紊的平均值为:8.00Process finished with exit code 0图2-*任务2输出结果巩固训练创立由1到16十六个数字组成的4*4的二维数组,并计算每一列的平均数。(可 以用mean函数求平均值)

    注意事项

    本文(Python数据分析与可视化教案2.8 Python的NumPy库.docx)为本站会员(太**)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开