大数据的Python基础课件第10章numpy与pandas基础.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《大数据的Python基础课件第10章numpy与pandas基础.pptx》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 Python 基础 课件 10 numpy pandas
- 资源描述:
-
1、第10章 numpy与pandas基础1本章学习目标 熟练掌握numpy数组运算与矩阵运算 理解pandas的Series和DataFrame结构 熟练掌握pandas读取不同类型数据的方法 熟练掌握pandas访问和修改数据的方法 熟练掌握缺失值处理方法 熟练掌握重复值处理方法 熟练掌握异常值处理方法210.1 numpy数组运算与矩阵运算基础 Python扩展库numpy支持N维数组运算、处理大型矩阵、成熟的广播函数库、矢量运算、线性代数、傅里叶变换、随机数生成,并可与C+/Fortran语言无缝结合。310.1.1 数组生成与常用操作(1)生成数组 np.array(1,2,3,4,5)
2、#把列表转换为数组array(1,2,3,4,5)np.array(1,2,3,4,5)#把元组转换成数组array(1,2,3,4,5)np.array(range(5)#把range对象转换成数组array(0,1,2,3,4)np.array(1,2,3,4,5,6)#二维数组array(1,2,3,4,5,6)np.arange(8)#类似于内置函数range()array(0,1,2,3,4,5,6,7)np.arange(1,10,2)array(1,3,5,7,9)410.1.1 数组生成与常用操作 np.linspace(0,10,11)#等差数组,包含11个数array(0.
3、,1.,2.,3.,4.,5.,6.,7.,8.,9.,10.)np.linspace(0,10,11,endpoint=False)#不包含终点array(0.,0.90909091,1.81818182,2.72727273,3.63636364,4.54545455,5.45454545,6.36363636,7.27272727,8.18181818,9.09090909)np.logspace(0,100,10)#相当于10*np.linspace(0,100,10)array(1.00000000e+000,1.29154967e+011,1.66810054e+022,2.154
4、43469e+033,2.78255940e+044,3.59381366e+055,4.64158883e+066,5.99484250e+077,7.74263683e+088,1.00000000e+100)np.logspace(1,6,5,base=2)#相当于2*np.linspace(1,6,5)array(2.,4.75682846,11.3137085,26.90868529,64.)np.zeros(3)#全0一维数组array(0.,0.,0.)510.1.1 数组生成与常用操作 np.ones(3)#全1一维数组array(1.,1.,1.)np.zeros(3,3)#
5、全0二维数组,3行3列array(0.,0.,0.,0.,0.,0.,0.,0.,0.)np.zeros(3,1)#全0二维数组,3行1列array(0.,0.,0.)np.zeros(1,3)#全0二维数组,1行3列array(0.,0.,0.)np.ones(3,3)#全1二维数组array(1.,1.,1.,1.,1.,1.,1.,1.,1.)610.1.1 数组生成与常用操作 np.ones(1,3)#全1二维数组array(1.,1.,1.)np.identity(3)#单位矩阵array(1.,0.,0.,0.,1.,0.,0.,0.,1.)np.identity(2)array(
6、1.,0.,0.,1.)np.empty(3,3)#空数组array(0.,0.,0.,0.,0.,0.,0.,0.,0.)710.1.1 数组生成与常用操作 np.hamming(20)#Hamming窗口array(0.08 ,0.10492407,0.17699537,0.28840385,0.42707668,0.5779865,0.7247799,0.85154952,0.94455793,0.9937262,0.9937262,0.94455793,0.85154952,0.7247799,0.5779865,0.42707668,0.28840385,0.17699537,0.1
7、0492407,0.08 )np.blackman(10)#Blackman窗口array(-1.38777878e-17,5.08696327e-02,2.58000502e-01,6.30000000e-01,9.51129866e-01,9.51129866e-01,6.30000000e-01,2.58000502e-01,5.08696327e-02,-1.38777878e-17)np.kaiser(12,5)#Kaiser窗口array(0.03671089,0.16199525,0.36683806,0.61609304,0.84458838,0.98167828,0.9816
8、7828,0.84458838,0.61609304,0.36683806,0.16199525,0.03671089)810.1.1 数组生成与常用操作 np.random.randint(0,50,5)#随机数组,5个0到50之间的数字array(13,47,31,26,9)np.random.randint(0,50,(3,5)#3行5列array(34,2,33,14,40,9,5,10,27,11,26,17,10,46,30)np.random.rand(10)#10个介于0,1)的随机数array(0.98139326,0.35675498,0.30580776,0.303796
9、27,0.19527425,0.59159936,0.31132305,0.20219211,0.20073821,0.02435331)np.random.standard_normal(5)#从标准正态分布中随机采样5个数字array(2.82669067,0.9773194,-0.72595951,-0.11343254,0.74813065)910.1.1 数组生成与常用操作 x=np.random.standard_normal(size=(3,4,2)xarray(0.5218421,-1.10892934,2.27295689,0.9598461,-0.92229318,2.25
10、708573,0.0070173,-0.30608704,1.05133704,-0.4094823,-0.03457527,-2.3034343,-0.45156185,-1.26174441,0.59367951,-0.78355627,0.0424474,-1.75202307,-0.43457619,-0.96445206,0.28342028,1.27303125,-0.15312326,2.0399687)1010.1.1 数组生成与常用操作 np.diag(1,2,3)#对角矩阵array(1,0,0,0,2,0,0,0,3)np.diag(1,2,3,4)#对角矩阵array(
11、1,0,0,0,0,2,0,0,0,0,3,0,0,0,0,4)1110.1.1 数组生成与常用操作(2)测试两个数组的对应元素是否都足够接近 x=np.array(1,2,3,4.001,5)y=np.array(1,1.999,3,4.01,5.1)np.allclose(x,y)False np.allclose(x,y,rtol=0.2)#设置相对误差参数True np.allclose(x,y,atol=0.2)#设置绝对误差参数True1210.1.1 数组生成与常用操作(3)修改数组中的元素值 x=np.arange(8)xarray(0,1,2,3,4,5,6,7)np.app
12、end(x,8)#返回新数组,增加元素array(0,1,2,3,4,5,6,7,8)np.append(x,9,10)#返回新数组,在尾部追加多个元素array(0,1,2,3,4,5,6,7,9,10)x#不影响原来的数组array(0,1,2,3,4,5,6,7)x3=8#原地修改元素值 xarray(0,1,2,8,4,5,6,7)1310.1.1 数组生成与常用操作 np.insert(x,1,8)#返回新数组,插入元素array(0,8,1,2,8,4,5,6,7)x=np.array(1,2,3,4,5,6,7,8,9)x0,2=4#修改第0行第2列的元素值 x1:,1:=1#切
13、片,同时修改多个值 xarray(1,2,4,4,1,1,7,1,1)1410.1.1 数组生成与常用操作 x1:,1:=1,2#同时修改多个元素值 xarray(1,2,4,4,1,2,7,1,2)x1:,1:=1,2,3,4#同时修改多个元素值 xarray(1,2,4,4,1,2,7,3,4)1510.1.1 数组生成与常用操作(4)数组与标量的计算 x=np.array(1,2,3,4,5)#创建数组对象 xarray(1,2,3,4,5)x*2#数组与数值相乘,返回新数组array(2,4,6,8,10)x/2#数组与数值相除array(0.5,1.,1.5,2.,2.5)x/2#数
14、组与数值整除array(0,1,1,2,2,dtype=int32)x*3#幂运算array(1,8,27,64,125,dtype=int32)x+2#数组与数值相加array(3,4,5,6,7)1610.1.1 数组生成与常用操作 x%3#余数array(1,2,0,1,2,dtype=int32)2*x#分别计算2*1、2*2、2*3、2*4、2*5array(2,4,8,16,32,dtype=int32)2/xarray(2.,1.,0.66666667,0.5,0.4)63/xarray(63,31,21,15,12,dtype=int32)1710.1.1 数组生成与常用操作(
15、5)数组与数组的四则运算 np.array(1,2,3,4)+np.array(4,3,2,1)#等长数组相加,对应元素相加array(5,5,5,5)np.array(1,2,3,4)+np.array(4)#数组中每个元素加4array(5,6,7,8)a=np.array(1,2,3)a+a#等长数组之间的加法运算,对应元素相加array(2,4,6)a*a#等长数组之间的乘法运算,对应元素相乘array(1,4,9)1810.1.1 数组生成与常用操作 a-a#等长数组之间的减法运算,对应元素相减array(0,0,0)a/a#等长数组之间的除法运算,对应元素相除array(1.,1.
16、,1.)b=np.array(1,2,3,4,5,6,7,8,9)c=a*b#不同维度的数组与数组相乘 c#a中的每个元素乘以b中的对应列元素array(1,4,9,4,10,18,7,16,27)c/b#数组之间的除法运算array(1.,2.,3.,1.,2.,3.,1.,2.,3.)1910.1.1 数组生成与常用操作 c/aarray(1.,2.,3.,4.,5.,6.,7.,8.,9.)a+b#a中每个元素加b中的每一列元素array(2,4,6,5,7,9,8,10,12)2010.1.1 数组生成与常用操作(6)数组排序 x=np.array(3,1,2)np.argsort(x
17、)#返回排序后元素的原下标array(1,2,0,dtype=int64)x_#使用数组做下标,获取排序后的元素array(1,2,3)x=np.array(3,1,2,4)x.argmax(),x.argmin()#最大值和最小值的下标(3,1)np.argsort(x)array(1,2,0,3,dtype=int64)x_array(1,2,3,4)x.sort()#原地排序 xarray(1,2,3,4)2110.1.1 数组生成与常用操作(7)数组的内积运算 a=np.array(5,6,7)b=np.array(6,6,6)a.dot(b)#向量内积108 np.dot(a,b)1
18、08 sum(a*b)1082210.1.1 数组生成与常用操作(8)数组元素访问 b=np.array(1,2,3,4,5,6,7,8,9)barray(1,2,3,4,5,6,7,8,9)b0#第0行array(1,2,3)b00#第0行第0列的元素值1 b0,2#第0行第2列的元素值3 b0,1#第0行和第1行array(1,2,3,4,5,6)b0,1,1,2#第0行第1列的元素和第1行第2列的元素#内部第一个列表表示行下标,第二个列表表示列下标array(2,6)2310.1.1 数组生成与常用操作(9)数组对函数运算的支持 x=np.arange(0,100,10,dtype=np
19、.floating)np.sin(x)#一维数组中所有元素求正弦值array(0.,-0.54402111,0.91294525,-0.98803162,0.74511316,-0.26237485,-0.30481062,0.77389068,-0.99388865,0.89399666)b=np.array(1,2,3,4,5,6,7,8,9)np.cos(b)#二维数组中所有元素求余弦值array(0.54030231,-0.41614684,-0.9899925,-0.65364362,0.28366219,0.96017029,0.75390225,-0.14550003,-0.91
20、113026)np.round(_)#四舍五入array(1.,-0.,-1.,-1.,0.,1.,1.,-0.,-1.)2410.1.1 数组生成与常用操作(10)改变数组大小 a=np.arange(1,11,1)aarray(1,2,3,4,5,6,7,8,9,10)a.shape=2,5#改为2行5列,原地修改 aarray(1,2,3,4,5,6,7,8,9,10)a.shape=5,-1#-1表示自动计算,原地修改 aarray(1,2,3,4,5,6,7,8,9,10)2510.1.1 数组生成与常用操作 b=a.reshape(2,5)#reshape()方法返回新数组 bar
21、ray(1,2,3,4,5,6,7,8,9,10)x=np.array(range(5)x.reshape(1,10)#reshape()不能修改数组元素个数Traceback(most recent call last):File,line 1,in x.reshape(1,10)ValueError:total size of new array must be unchanged x.resize(1,10)#resize()可以改变数组元素个数 xarray(0,1,2,3,4,0,0,0,0,0)2610.1.1 数组生成与常用操作(11)数组切片操作 a=np.arange(10)
22、aarray(0,1,2,3,4,5,6,7,8,9)a:-1#反向切片array(9,8,7,6,5,4,3,2,1,0)a:2#隔一个取一个元素array(0,2,4,6,8)a:5#前5个元素array(0,1,2,3,4)2710.1.1 数组生成与常用操作 c=np.arange(25)#创建数组 c.shape=5,5#修改数组大小 carray(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24)c0,2:5#第0行中下标2,5)之间的元素值array(2,3,4)c1#第0行所有元素array(5,6
23、,7,8,9)2810.1.1 数组生成与常用操作 c2:5,2:5#行下标和列下标都介于2,5)之间的元素值array(12,13,14,17,18,19,22,23,24)c1,3,2,4#第1行第2列的元素和第3行第4列的元素array(7,19)c1,3,2:4#第1行和第3行的第2、3列array(7,8,17,18)c1,3#第1行和第3行所有元素array(5,6,7,8,9,15,16,17,18,19)c1,3:,2,4#第1、3行的2、4列元素array(7,9,17,19)2910.1.1 数组生成与常用操作(12)数组布尔运算 x=np.random.rand(10)#
24、包含10个随机数的数组 xarray(0.56707504,0.07527513,0.0149213,0.49157657,0.75404095,0.40330683,0.90158037,0.36465894,0.37620859,0.62250594)x 0.5#比较数组中每个元素值是否大于0.5array(True,False,False,False,True,False,True,False,False,True,dtype=bool)xx0.5#获取数组中大于0.5的元素array(0.56707504,0.75404095,0.90158037,0.62250594)x np.al
25、l(x np.any(1,2,3,4)#是否存在等价于True的元素True np.any(0)False a=np.array(1,2,3)b=np.array(3,2,1)a b#两个数组中对应位置上的元素比较array(False,False,True,dtype=bool)aab#数组a中大于b数组对应位置上元素的值array(3)a=barray(False,True,False,dtype=bool)aa=barray(2)3110.1.1 数组生成与常用操作 x=np.arange(1,10)xarray(1,2,3,4,5,6,7,8,9)x(x%2=0)&(x5)#布尔与运算
展开阅读全文