大数据的Python基础课件第10章numpy与pandas基础.pptx
《大数据的Python基础课件第10章numpy与pandas基础.pptx》由会员分享,可在线阅读,更多相关《大数据的Python基础课件第10章numpy与pandas基础.pptx(118页珍藏版)》请在三一办公上搜索。
1、第10章 numpy与pandas基础,1,本章学习目标,熟练掌握numpy数组运算与矩阵运算理解pandas的Series和DataFrame结构熟练掌握pandas读取不同类型数据的方法熟练掌握pandas访问和修改数据的方法熟练掌握缺失值处理方法熟练掌握重复值处理方法熟练掌握异常值处理方法,2,10.1 numpy数组运算与矩阵运算基础,Python扩展库numpy支持N维数组运算、处理大型矩阵、成熟的广播函数库、矢量运算、线性代数、傅里叶变换、随机数生成,并可与C+/Fortran语言无缝结合。,3,10.1.1 数组生成与常用操作,(1)生成数组 np.array(1, 2, 3,
2、4, 5) #把列表转换为数组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),4,1
3、0.1.1 数组生成与常用操作, np.linspace(0, 10, 11) #等差数组,包含11个数array( 0., 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,
4、 10) #相当于10*np.linspace(0,100,10)array(1.00000000e+000, 1.29154967e+011, 1.66810054e+022, 2.15443469e+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
5、.90868529, 64. ) np.zeros(3) #全0一维数组array( 0., 0., 0.),5,10.1.1 数组生成与常用操作, np.ones(3) #全1一维数组array( 1., 1., 1.) np.zeros(3,3) #全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.
6、, 1., 1., 1., 1., 1., 1., 1., 1.),6,10.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( 1., 0., 0., 1.) np.empty(3,3) #空数组array( 0., 0., 0., 0., 0., 0., 0., 0., 0.),7,10.1.1 数组生成与常用操作, np.hamming(20) #Hamming窗口a
7、rray(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.10492407, 0.08 ) np.blackman(10) #Blackman窗口array( -1.38777878e-17, 5.08696327e-02,
8、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.98167828, 0.84458838, 0.61609304, 0.36683806, 0.16199525, 0.03671
9、089),8,10.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.30379627, 0.19527425, 0.59159
10、936, 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),9,10.1.1 数组生成与常用操作, x = np.random.standard_normal(size=(3, 4, 2) xarray( 0.5218421 , -1.10892934, 2.27295689, 0.9598461 , -0.92229318,
11、 2.25708573, 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 ),10,10.1.1 数组生成与常用操作, np.diag(1,2,3) #对角矩阵array(1, 0, 0, 0, 2
12、, 0, 0, 0, 3) np.diag(1,2,3,4) #对角矩阵array(1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4),11,10.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) #设置绝对误
13、差参数True,12,10.1.1 数组生成与常用操作,(3)修改数组中的元素值 x = np.arange(8) xarray(0, 1, 2, 3, 4, 5, 6, 7) np.append(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,
14、5, 6, 7),13,10.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 #切片,同时修改多个值 xarray(1, 2, 4, 4, 1, 1, 7, 1, 1),14,10.1.1 数组生成与常用操作, x1:, 1: = 1,2 #同时修改多个元素值 xarray(1, 2, 4, 4, 1, 2, 7, 1, 2) x1:, 1: = 1
15、,2,3,4 #同时修改多个元素值 xarray(1, 2, 4, 4, 1, 2, 7, 3, 4),15,10.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 #数组与数值整除array(0, 1, 1, 2, 2, dtype=int32) x * 3 #幂运算array(1, 8,
16、 27, 64, 125, dtype=int32) x + 2 #数组与数值相加array(3, 4, 5, 6, 7),16,10.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),17,10.1.1 数组生成与常用操作,(5
17、)数组与数组的四则运算 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),18,10.1.1 数组生成与常用操作, a - a #等长数组之间的减法运算,对应元素相减a
18、rray(0, 0, 0) a / a #等长数组之间的除法运算,对应元素相除array( 1., 1., 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.),19,10.1.1 数组生成与常用操作, c / aarray( 1., 2., 3., 4., 5., 6., 7.,
19、8., 9.) a+b #a中每个元素加b中的每一列元素array( 2, 4, 6, 5, 7, 9, 8, 10, 12),20,10.1.1 数组生成与常用操作,(6)数组排序 x = np.array(3, 1, 2) np.argsort(x) #返回排序后元素的原下标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,
20、dtype=int64) x_array(1, 2, 3, 4) x.sort() #原地排序 xarray(1, 2, 3, 4),21,10.1.1 数组生成与常用操作,(7)数组的内积运算 a = np.array(5, 6, 7) b = np.array(6, 6, 6) a.dot(b) #向量内积108 np.dot(a,b)108 sum(a*b)108,22,10.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
21、, 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),23,10.1.1 数组生成与常用操作,(9)数组对函数运算的支持 x = np.arange(0, 100, 10, dtype=np.floating) np.sin(x) #一维数组中所有元素求正弦值array(0. , -0.54402111, 0.91294525, -0.98803162, 0.74
22、511316, -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.91113026) np.round(_) #四舍五入array( 1., -0., -1., -1., 0.
23、, 1., 1., -0., -1.),24,10.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),25,10.1.1 数组生成与常用操作, b = a.reshape(2,5) #reshape()
24、方法返回新数组 barray( 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)
25、,26,10.1.1 数组生成与常用操作,(11)数组切片操作 a = np.arange(10) 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),27,10.1.1 数组生成与常用操作, c = np.arange(25) #创建数组 c.shape = 5,5 #修改数组大小 carray( 0, 1, 2, 3, 4, 5, 6, 7, 8,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 Python 基础 课件 10 numpy pandas
链接地址:https://www.31ppt.com/p-1748794.html