vlambda博客
学习文章列表

活动总结 | “学术技能交流荟”系列讲座第三期 -- Python数据处理顺利举办!

学术技能交流荟”系列活动介绍


       为了更好地助力同学们开展科研工作,提高专业素质,加强学术交流,工学院联合材料科学与工程学院共同开展“学术技能交流荟”系列讲座,从广大本科生、研究生的切身科研需求出发,在科研工具和使用技巧等方面为大家指点迷津,激发同学们的科研兴趣,提高学术科研水平,营造浓厚学术氛围。


Python讲座总结


2022年4月3日15:00-17:00,材料科学与工程学院联合工学院于北京大学工学院力学楼434会议室共同举办了“学术技能交流荟”系列第三期讲座——Python数据处理:从入门到实践。本次讲座邀请了北京大学工学院2020级硕士生王永义进行分享。本次讲座从Python的核心语法与基础内容,如numpy,pandas,matplotlib等的使用,以及其在爬虫的应用等方面展开,帮助大家快速入门Python并掌握部分Python常用语句及数据处理技能。

接下来,就让我们一起回顾讲座的精彩内容吧!

Python简介


       Python是一种广泛使用的解释型、高级和通用的编程语言,被广泛应用于处理系统管理任务和Web编程,现已成为多数平台上写脚本和快速开发应用的编程语言。

       Python支持多种编程范型,包括函数式、指令式、反射式、结构化和面向对象编程。它拥有动态类型系统和垃圾回收功能,能够自动管理内存使用,并且其本身拥有一个巨大而广泛的标准库。它的语言结构以及面向对象的方法旨在帮助程序员为小型的和大型的项目编写清晰的、合乎逻辑的代码。

      Python以较低的学习门槛和强大的功能,成为最受欢迎的编程语言之一,在计算与数据分析、人工智能、网络爬虫等方面有着广泛的应用。


讲座笔记


一、Python基础

1.数据类型

整数int、小数float、字符串str、布尔值bool、列表list

(1)  字符串操作:

字符串的长度len(x)、字符串的提取x.split()、字符串的替换x.replace()、格式化format()

(2)  有序集合list操作:

添加x.append()、删除x.pop()、插入x.insert()


2.控制流

(1)条件: if语句执行有个特点,它是从上往下判断,如果在某个判断上是True,把该判断对应的语句执行后,就忽略掉剩下的elif和else。

if <条件判断1>:

    <执行1>

elif <条件判断2>:

    <执行2>

elif <条件判断3>:

    <执行3>

else: <执行4>

(2)循环

while循环:在给定的判断条件为 true 时执行循环体,否则退出循环体。

for循环:重复执行语句

break语句:在语句块执行过程中终止循环,并且跳出整个循环

continue语句:在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环。

pass语句:pass是空语句,是为了保持程序结构的完整性。


3.函数

(1)python 内置了很多函数,正确调用函数可以高效地完成任务

如:

abs:求数值的绝对值

max:返回可迭代对象中的元素中的最大值或者所有参数的最大值

min:返回可迭代对象中的元素中的最小值或者所有参数的最小值

sum:对元素类型是数值的可迭代对象中的每个元素求和


(2)自定义函数:函数代码块以 def 关键词开头,后接函数标识符名称和圆括号();任何传入参数和自变量必须放在圆括号中间。函数内容以冒号起始,并且缩进。return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。


二、面向对象

面向对象最重要的概念就是类(Class)和实例(Instance),可以大大地减少代码的重复编写。


1.类class X():

使用 class 语句来创建一个新类,class后面紧接着是类名,,类名通常是大写开头的单词,紧接着是(object),表示该类是从哪个类继承下来的,以冒号结尾。


2.实例

类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称, 按照惯例它的名称是 self。


3.继承

在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类、父类或超类(Base class、Super class)。

继承可以把父类的所有功能都直接拿过来,这样就不必从零做起,子类只需要新增自己特有的方法,也可以把父类不适合的方法覆盖重写。


三、Python科学计算模块——Numpy的使用

1.  NumPy的ndarray:一种多维数组对象

(1)NumPy最重要的一个特点就是其N维数组对象(即ndarray),该对象是一个快速而灵活的大数据集容器。

ndarray是一个多维数组,其元素具有相同的基本类型;可以通过属性ndim 来查看数组的维度;可以通过属性shape 来查看数组的各维度的长度;通过属性dtype查看数组元素的类型。

(2)创建数组最简单的办法就是使用array函数。它接受一切序列型的对象(包括其他数组),然后产生一个新的含有传入数据的NumPy数组。X=np.array(y)

(3)数组的运算

矢量运算(不用写循环);大小相等(shape 相同)的数组的数学运算,都是对应元素之间的运算;数组和标量的数学运算,将标量分别与对应元素运算


2.  通用函数:快速的元素级数组函数

将函数作用在数组的对应的每一个元素上

abs,sqrt,square,exp,log,log10,log2,isnan,cos,sin, power,maximum,minimum


3.  利用数组进行数据处理

如:随机产生矩阵np.random.randn(4,5);给定一组观测(随机产生来模拟),求出各行、各列的和sum、均值mean、方差var、最大值max、最小值min等。

(1)数组的去重/集合操作

unique() ##唯一元素提取

intersect1d(x,y)      ##交

union1d(x,y)      ## 并

in1d(x,y)      ##判断x中的元素是否在y中

setdiff1d(x,y)      ##差

setxor1d(x,y)      ## (x\y) and(y\x)


4.  用于数组的文件输入输出

对于numpy类型的变量,可以使用np.save、np.load 进行快速的存储和读取。


5.  线性代数

二维数组其实就是数学中的矩阵,因此对于二维数组有许多矩阵的运算:矩阵乘法x.dot(y)或np.dot(x,y)、求逆矩阵inv(x)。


四、Python 数据分析模块—Pandas

1. Pandas 简介

pandas(Python Data Analysis Library)是基于numpy的数据分析模块,提供了大量标准数据模型和高效操作大型数据集所需要的工具,可以说pandas是使得Python能够成为高效且强大的数据分析环境的重要因素之一。

pandas主要提供了2种数据结构

(1)Series:类似一维数组的对象。有两个重要属性:values 和 index。

跟numpy相比,Series 可以通过index的值进行索引。Series 很像字典,可以用字典的操作。

(2)DataFrame,带标签且大小可变的二维表格结构。


五、绘图模块

Matplotlib 是 Python 的绘图库。

先导入常用的包:import numpy as np;import matplotlib.pyplot as plt

定义x轴的数据:x = np.linspace(x);定义y轴的数据:y = …

plt.plot(x,y)

显示图像:plt.show()


六、爬虫

Python中的 requests 库能够自动帮助我们构造向服务器请求资源的request对象,返回服务器资源的response对象。如果仅仅需要返回HTML页面内容,直接调用response的text属性即可。


讲座回顾


       本次讲座中,王永义同学兼顾基础知识与应用实例的讲解,带领现场同学们进行了实操训练。在数据分析模块Pandas和爬虫两章中,分别给出了在股市数据分析和当当网书籍信息爬取的实例,给同学们很多启发与思考。


活动总结 | “学术技能交流荟”系列讲座第三期 -- Python数据处理顺利举办!

       Python内容丰富,功能强大,作为一种解释性语言,容易上手编写。相信只要多加练习,Python必然会成为同学们日后工作中的好帮手。


   与其看事后的活动总结,不如踊跃报名参加下一次“学术交流会”系列讲座吧!


意见反馈


如果你对本次活动有任何建议

或对于下次活动的主题有任何期望

欢迎扫码进行填写!

建议或主题被采纳者

有机会获得我们提供的精美纪念品~

活动总结 | “学术技能交流荟”系列讲座第三期 -- Python数据处理顺利举办!

文字&编辑:高川

图片:侯昌盛

审核:张婧、袁苗苗