书签 分享 收藏 举报 版权申诉 / 118
上传文档赚钱

类型大数据的Python基础课件第10章numpy与pandas基础.pptx

  • 上传人(卖家):晟晟文业
  • 文档编号:4105189
  • 上传时间:2022-11-11
  • 格式:PPTX
  • 页数:118
  • 大小:272.57KB
  • 【下载声明】
    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)#布尔与运算

    26、array(6,8)x(x%2=0)|(x5)#布尔或运算array(2,4,6,7,8,9)3210.1.1 数组生成与常用操作 import numpy as np data=np.array(1,2,3,2,3,3,3,4,5,1,2,3,4,5,6,1,2,3)data=1,2,3array(True,True,True,False,False,True,False,False,False,True,True,True,False,False,False,True,True,True)index=list(map(lambda row:all(row=1,2,3),data)datai

    27、ndex#获取所有1,2,3的行array(1,2,3,1,2,3,1,2,3)3310.1.1 数组生成与常用操作(13)分段函数 x=np.random.randint(0,10,size=(1,10)xarray(0,4,3,3,8,4,7,3,1,7)np.where(x np.piecewise(x,x7,lambda x:x*2,lambda x:x*3)#小于4的元素乘以2#大于7的元素乘以3#其他元素变为0array(0,0,6,6,24,0,0,6,2,0)3410.1.1 数组生成与常用操作(14)计算唯一值与出现次数 x=np.random.randint(0,10,7)

    28、xarray(8,7,7,5,3,8,0)np.bincount(x)#元素出现次数,0出现1次,#1、2没出现,3出现1次,以此类推array(1,0,0,1,0,1,0,2,2,dtype=int64)np.sum(_)#所有元素出现次数之和等于数组长度7 len(x)7 np.unique(x)#返回唯一元素值array(0,3,5,7,8)3510.1.2 矩阵生成与常用操作(1)生成矩阵 a_list=3,5,7 a_mat=np.matrix(a_list)#创建矩阵 a_matmatrix(3,5,7)c_mat=np.matrix(1,5,3,2,9,6)#创建矩阵 c_mat

    29、matrix(1,5,3,2,9,6)3610.1.2 矩阵生成与常用操作(2)矩阵转置 a_mat.T#矩阵转置matrix(3,5,7)a_mat.shape#矩阵形状(1,3)a_mat.size#元素个数33710.1.2 矩阵生成与常用操作(3)计算矩阵特征 a_mat.mean()#元素平均值5.0 a_mat.sum()#所有元素之和15 a_mat.max()#最大值7 a_mat.max(axis=1)#横向最大值matrix(7)a_mat.max(axis=0)#纵向最大值matrix(3,5,7)3810.1.2 矩阵生成与常用操作(4)矩阵相乘 b_mat=np.ma

    30、trix(1,2,3)#创建矩阵 b_matmatrix(1,2,3)a_mat*b_mat.T#矩阵相乘matrix(34)3910.1.2 矩阵生成与常用操作(5)矩阵元素排序 c_mat.argsort(axis=0)#纵向排序后的元素序号matrix(0,0,0,1,1,1,dtype=int64)c_mat.argsort(axis=1)#横向排序后的元素序号matrix(0,2,1,0,2,1,dtype=int64)4010.1.2 矩阵生成与常用操作(6)计算相关系数矩阵(对称矩阵,对角线上元素表示自相关系数)np.corrcoef(1,2,3,4,4,3,2,1)#负相关,变

    31、化方向相反array(1.,-1.,-1.,1.)np.corrcoef(1,2,3,4,1,2,3,4)#正相关,变化方向一致array(1.,1.,1.,1.)np.corrcoef(1,2,3,4,1,2,3,40)#正相关,变化趋势接近array(1.,0.8010362,0.8010362,1.)4110.1.2 矩阵生成与常用操作(7)矩阵行列扩展 import numpy as np data=np.matrix(np.random.randint(1,10,5)for _ in range(6)newCols=np.matrix(np.random.randint(1,10,2

    32、)for _ in range(6)newRows=np.matrix(np.random.randint(1,10,5)for _ in range(3)datamatrix(8,7,7,6,1,1,9,8,5,9,1,8,7,9,6,1,4,5,5,2,4,3,1,9,2,6,3,2,7,7)4210.1.2 矩阵生成与常用操作 newColsmatrix(7,1,6,3,9,1,2,7,8,8,9,1)newRowsmatrix(8,3,7,5,8,7,4,7,3,8,2,8,5,2,3)4310.1.2 矩阵生成与常用操作 np.c_data,newCols#在右侧增加列matrix(

    33、8,7,7,6,1,7,1,1,9,8,5,9,6,3,1,8,7,9,6,9,1,1,4,5,5,2,2,7,4,3,1,9,2,8,8,6,3,2,7,7,9,1)np.c_newCols,data#在左侧增加列matrix(7,1,8,7,7,6,1,6,3,1,9,8,5,9,9,1,1,8,7,9,6,2,7,1,4,5,5,2,8,8,4,3,1,9,2,9,1,6,3,2,7,7)4410.1.2 矩阵生成与常用操作 np.r_data,newRows#在下面增加行matrix(8,7,7,6,1,1,9,8,5,9,1,8,7,9,6,1,4,5,5,2,4,3,1,9,2,6

    34、,3,2,7,7,8,3,7,5,8,7,4,7,3,8,2,8,5,2,3)4510.1.2 矩阵生成与常用操作 np.r_newRows,data#在上面增加行matrix(8,3,7,5,8,7,4,7,3,8,2,8,5,2,3,8,7,7,6,1,1,9,8,5,9,1,8,7,9,6,1,4,5,5,2,4,3,1,9,2,6,3,2,7,7)4610.1.2 矩阵生成与常用操作 np.r_data,newRows,newRows#在下面增加行matrix(8,7,7,6,1,1,9,8,5,9,1,8,7,9,6,1,4,5,5,2,4,3,1,9,2,6,3,2,7,7,8,3

    35、,7,5,8,7,4,7,3,8,2,8,5,2,3,8,3,7,5,8,7,4,7,3,8,2,8,5,2,3)4710.1.2 矩阵生成与常用操作 np.insert(data,0,newRows,axis=0)#在第0行增加行matrix(8,3,7,5,8,7,4,7,3,8,2,8,5,2,3,8,7,7,6,1,1,9,8,5,9,1,8,7,9,6,1,4,5,5,2,4,3,1,9,2,6,3,2,7,7)4810.1.2 矩阵生成与常用操作 np.insert(data,3,newRows,axis=0)#在第3行增加行matrix(8,7,7,6,1,1,9,8,5,9,1

    36、,8,7,9,6,8,3,7,5,8,7,4,7,3,8,2,8,5,2,3,1,4,5,5,2,4,3,1,9,2,6,3,2,7,7)4910.1.2 矩阵生成与常用操作 np.insert(data,4,newCols.T,axis=1)#在第4列处增加列matrix(8,7,7,6,7,1,1,1,9,8,5,6,3,9,1,8,7,9,9,1,6,1,4,5,5,2,7,2,4,3,1,9,8,8,2,6,3,2,7,9,1,7)5010.1.2 矩阵生成与常用操作 np.row_stack(data,newRows)#扩展行matrix(8,7,7,6,1,1,9,8,5,9,1,

    37、8,7,9,6,1,4,5,5,2,4,3,1,9,2,6,3,2,7,7,8,3,7,5,8,7,4,7,3,8,2,8,5,2,3)5110.1.2 矩阵生成与常用操作 np.column_stack(data,newCols)#扩展列matrix(8,7,7,6,1,7,1,1,9,8,5,9,6,3,1,8,7,9,6,9,1,1,4,5,5,2,2,7,4,3,1,9,2,8,8,6,3,2,7,7,9,1)5210.1.2 矩阵生成与常用操作(8)计算方差、协方差。np.cov(1,1,1,1,1)#协方差array(0.0)x=-2.1,-1,4.3 y=3,1.1,0.12 X

    38、=np.vstack(x,y)print(np.cov(X)#协方差 11.71 -4.286 -4.286 2.14413333 print(np.cov(x,y)11.71 -4.286 -4.286 2.14413333 print(np.cov(x)11.7099999999999995310.1.3 计算特征值与特征向量 import numpy as np e,v=np.linalg.eig(1,1,2,2)#特征值与特征向量 earray(0.,3.)varray(-0.70710678,-0.4472136,0.70710678,-0.89442719)array=np.ara

    39、nge(1,10).reshape(3,3)e,v=np.linalg.eig(array)earray(1.61168440e+01,-1.11684397e+00,-9.75918483e-16)varray(-0.23197069,-0.78583024,0.40824829,-0.52532209,-0.08675134,-0.81649658,-0.8186735,0.61232756,0.40824829)5410.1.4 计算逆矩阵 import numpy as np x=np.matrix(1,2,3,4)y=np.linalg.inv(x)#计算逆矩阵 x*y#验证matr

    40、ix(1.00000000e+00,1.11022302e-16,0.00000000e+00,1.00000000e+00)y*xmatrix(1.00000000e+00,4.44089210e-16,0.00000000e+00,1.00000000e+00)5510.1.5 矩阵QR分解 import numpy as np a=np.matrix(1,2,3,4,5,6)q,r=np.linalg.qr(a)np.dot(q,r)#验证matrix(1.,2.,3.,4.,5.,6.)5610.1.6 计算行列式 import numpy as np a=1,2,3,4 np.lin

    41、alg.det(a)-2.0000000000000004 a=np.array(1,2,3,4,1,2,2,1,1,3,3,1)np.linalg.det(a)array(-2.,-3.,-8.)5710.1.7 矩阵奇异值分解 import numpy as np a=np.arange(60).reshape(5,-1)aarray(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,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,4

    42、6,47,48,49,50,51,52,53,54,55,56,57,58,59)U,s,V=np.linalg.svd(a,full_matrices=False)5810.1.7 矩阵奇异值分解 np.dot(U,np.dot(np.diag(s),V)array(7.01764278e-15,1.00000000e+00,2.00000000e+00,3.00000000e+00,4.00000000e+00,5.00000000e+00,6.00000000e+00,7.00000000e+00,8.00000000e+00,9.00000000e+00,1.00000000e+01,

    43、1.10000000e+01,1.20000000e+01,1.30000000e+01,1.40000000e+01,1.50000000e+01,1.60000000e+01,1.70000000e+01,1.80000000e+01,1.90000000e+01,2.00000000e+01,2.10000000e+01,2.20000000e+01,2.30000000e+01,2.40000000e+01,2.50000000e+01,2.60000000e+01,2.70000000e+01,2.80000000e+01,2.90000000e+01,3.00000000e+01,

    44、3.10000000e+01,3.20000000e+01,3.30000000e+01,3.40000000e+01,3.50000000e+01,3.60000000e+01,3.70000000e+01,3.80000000e+01,3.90000000e+01,4.00000000e+01,4.10000000e+01,4.20000000e+01,4.30000000e+01,4.40000000e+01,4.50000000e+01,4.60000000e+01,4.70000000e+01,4.80000000e+01,4.90000000e+01,5.00000000e+01,

    45、5.10000000e+01,5.20000000e+01,5.30000000e+01,5.40000000e+01,5.50000000e+01,5.60000000e+01,5.70000000e+01,5.80000000e+01,5.90000000e+01)np.allclose(a,np.dot(U,np.dot(np.diag(s),V)True5910.1.8 求解线性方程组ax=b的解 import numpy as np a=np.array(3,1,1,2)#系数矩阵 b=np.array(9,8)#系数矩阵 x=np.linalg.solve(a,b)#求解 xarr

    46、ay(2.,3.)np.dot(a,x)array(9.,8.)np.linalg.lstsq(a,b)#最小二乘解#返回解、余项、a的秩、a的奇异值(array(2.,3.),array(,dtype=float64),2,array(3.61803399,1.38196601)6010.1.9 计算矩阵和向量的范数 import numpy as np x=np.matrix(1,2,3,-4)np.linalg.norm(x)#(1*2+2*2+3*2+(-4)*2)*0.55.4772255750516612 np.linalg.norm(x,-2)#smallest singular

    47、 value1.9543950758485487 np.linalg.norm(x,-1)#min(sum(abs(x),axis=0)4.0 np.linalg.norm(x,1)#max(sum(abs(x),axis=0)6.0 np.linalg.norm(np.array(1,2,3,4),3)4.64158883361277846110.2 pandas数据处理基础 pandas是Python用于处理数据的扩展库,主要提供了3种数据结构:1)Series,带标签的一维数组;2)DataFrame,带标签且大小可变的二维表格结构;3)Panel,带标签且大小可变的三维数组。6210.

    48、2.1 一维数组Series与常用索引数组生成与操作(1)生成一维数组 import numpy as np import pandas as pd x=pd.Series(1,3,5,np.nan)x0 1.01 3.02 5.03 NaNdtype:float646310.2.1 一维数组Series与常用索引数组生成与操作(2)生成日期时间索引数组 pd.date_range(start=20190101,end=20191231,freq=H)DatetimeIndex(2019-01-01 00:00:00,2019-01-01 01:00:00,2019-01-01 02:00:0

    49、0,2019-01-01 03:00:00,2019-01-01 04:00:00,2019-01-01 05:00:00,2019-01-01 06:00:00,2019-01-01 07:00:00,2019-01-01 08:00:00,2019-01-01 09:00:00,.2019-12-30 15:00:00,2019-12-30 16:00:00,2019-12-30 17:00:00,2019-12-30 18:00:00,2019-12-30 19:00:00,2019-12-30 20:00:00,2019-12-30 21:00:00,2019-12-30 22:00:

    50、00,2019-12-30 23:00:00,2019-12-31 00:00:00,dtype=datetime64ns,length=8737,freq=H)6410.2.1 一维数组Series与常用索引数组生成与操作 dates=pd.date_range(start=20190101,end=20191231,freq=D)#间隔为天 datesDatetimeIndex(2019-01-01,2019-01-02,2019-01-03,2019-01-04,2019-01-05,2019-01-06,2019-01-07,2019-01-08,2019-01-09,2019-01-

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:大数据的Python基础课件第10章numpy与pandas基础.pptx
    链接地址:https://www.163wenku.com/p-4105189.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库