Python金融数据分析与挖掘(微课版) 课件 2-1. 数组创建与操作_第1页
Python金融数据分析与挖掘(微课版) 课件 2-1. 数组创建与操作_第2页
Python金融数据分析与挖掘(微课版) 课件 2-1. 数组创建与操作_第3页
Python金融数据分析与挖掘(微课版) 课件 2-1. 数组创建与操作_第4页
Python金融数据分析与挖掘(微课版) 课件 2-1. 数组创建与操作_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章

科学计算包Numpy数组创建、数组尺寸与重排数组运算与数学函数数组切片、连接、存取、展平、排序与搜索Numpy简介第2章

Numpy是Python用于科学计算的基础包,也是大量Python数学和科学计算包的基础。Numpy的核心基础是ndarray(N-dimensionalarray,N维数组),即由数据类型相同的元素组成的N维数组。使用该包,需要按模块的形式导入,即:importnumpy,大多情况下是importnumpyasnp,即简称np。利用array()函数创建数组第2章。基于array()函数,可以将列表、元组、嵌套列表、嵌套元组等数据结构转化为数组d1=[1,2,3,4,0.1,7]#列表d2=(1,2,3,4,2.3)#元组d3=[[1,2,3,4],[5,6,7,8]]#嵌套列表,元素为列表d4=[(1,2,3,4),(5,6,7,8)]#嵌套列表,元素为元组d5=((1,2,3,4),(5,6,7,8))#嵌套元组importnumpyasnpd11=np.array(d1)d21=np.array(d2)d31=np.array(d3)d41=np.array(d4)d51=np.array(d5)deld1,d2,d3,d4,d5利用内置函数创建数组第2章importnumpyasnpz1=np.ones((3,3))#创建3行3列元素全为1的数组z2=np.zeros((3,4))#创建3行4列元素全为0的数组z3=np.arange(10)#创建默认初始值为0,默认步长为1,末值为9的一维数组z4=np.arange(2,10)#创建默认初始值为2,默认步长为1,末值为9的一维数组z5=np.arange(2,10,2)#创建默认初始值为2,步长为2,末值为9的一维数组数组尺寸与重排第2章d1=[1,2,3,4,0.1,7]#列表d3=[[1,2,3,4],[5,6,7,8]]#嵌套列表,元素为列表importnumpyasnpd11=np.array(d1)#将d1列表转换为一维数组,结果赋值给变量d11d31=np.array(d3)#将d3嵌套列表转换为二维数组,结果赋值给变量d31deld1,d3#删除d1,d3s11=d11.shape

#返回一维数组d11的尺寸,结果赋值给变量s11s31=d31.shape#返回二维数组d31的尺寸,结果赋值给变量s31r=np.array(range(9))#一维数组r1=r.reshape((3,3))#重排为3行3列第2章数组运算importnumpyasnpA=np.array([[1,2],[3,4]])#定义二维数组AB=np.array([[5,6],[7,8]])#定义二维数组BC1=A-B#A、B两个数组元素之间相减,结果赋给变量C1C2=A+B#A、B两个数组元素之间相加,结果赋给变量C2C3=A*B#A、B两个数组元素之间相乘,结果赋给变量C3C4=A/B#A、B两个数组元素之间相除,结果赋给变量C4C5=A/3#A数组所有元素除以3,结果赋给变量C5C6=1/A#1除以A数组所有元素,结果赋给变量C6C7=A**2#A数组所有元素取平方,结果赋给变量C7C8=np.array([1,2,3,3.1,4.5,6,7,8,9])#定义数组C8C9=(C8-min(C8))/(max(C8)-min(C8))#C8中的元素做极差化处理,结果赋给变量C9第2章数学函数D=np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]])#定义数组D#数学运算E1=np.sqrt(D)#数组D中所有元素取平方根,结果赋给变量E1E2=np.abs([1,-2,-100])#取绝对值E3=np.cos([1,2,3])#取cos值E4=np.sin(D)#取sin值E5=np.exp(D)#取指数函数值第2章常用组切片方法假设D为待访问或切片的数据变量,则访问或者切片的数据=D[①,②]。其中①为对D的行下标控制,②为对D的列下标控制。为了更灵活地操作数据,取所有的行或者列,可以用“:”来代替实现。同时,行控制还可以通过逻辑列表来实现。importnumpyasnpD=np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]])#定义数组DD12=D[1,2]#访问D中行为1,列为2的数据,注意下标是从0开始的。D1=D[:,[1,3]]#访问D中第1、3列数据D2=D[[1,3],:]#访问D中第1、3行数据Dt1=D[D[:,0]>5,:]#取D中满足第0列大于5的所有列数据,本质上行控制为逻辑列表TF=[True,False,False,True]#取D中第0、3行的所有列数据,本质上行控制为逻辑列表,取逻辑值为真的行Dt3=D[TF,:]第2章利用ix_()函数进行数组切片通过ix_()函数构造行、列下标索引器,实现数组的切片操作。importnumpyasnpD=np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]])#定义数组DD3=D[np.ix_([1,2],[1,3])]#提取D中行数为1、2,列数为1、3的所有元素D4=D[np.ix_(np.arange(2),[1,3])]#提取D中行数为0、1,列数为1、3的所有元素D6=D[np.ix_(D[:,1]<11,[1,2])]#提取D中第1列小于11得到的逻辑数组作为行索引,列数为1、2的所有元素D7=D[np.ix_(D[:,1]<11,[2])]#提取D中第1列小于11得到的逻辑数组作为行索引,列数为2的所有元素TF=[True,False,False,True]D8=D[np.ix_(TF,[2])]#提取TF=[True,False,False,True]逻辑列表为行索引,列数为2的所有元素D9=D[np.ix_(TF,[1,3])]#提取TF=[True,False,False,True]逻辑列表为行索引,列数为1,,3的所有元素第2章数组连接importnumpyasnpA=np.array([[1,2],[3,4]])#定义二维数组AB=np.array([[5,6],[7,8]])#定义二维数组BC_s=np.hstack((A,B))#水平连接要求行数相同C_v=np.vstack((A,B))#垂直连接要求列数相同第2章数组存取importnumpyasnpA=np.array([[1,2],[3,4]])#定义二维数组AB=np.array([[5,6],[7,8]])#定义二维数组BC_s=np.hstack((A,B))#水平连接np.save('data',C_s)第2章数组存取importnumpyasnpC_s=np.load(‘data.npy’)

数组展平

前面介绍了reshape函数将一维数组形态变换为二维数组,事实上也可以将二维数组形态展平变换为一维数组,通过ravel()函数即可实现。importnumpyasnparr=np.arange(12).reshape(3,4)arr1=arr.ravel()第2章

数组排序

通过sort函数,可以对数组元素值按从小到大进行直接排序importnumpyasnparr=np.array([5,2,3,3,1,9,8,6,7])arr1=np.sort(arr)第2章

数组搜索

通过argmax和argmin函数,可以返回待搜索数组最大值和最小值元素的索引值,如果存在多个最大值或最小值,则返回第一次出现的索引。对于二维数组而已,可以通过设置axis=0或1返回各列或者各行最大值或最小值索引。需要注意的是,索引从0开

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论