还剩37页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
北京大学课件精选Python欢迎来到北京大学课程的精华内容本课程汇集了小时的完Python128整教学内容,从零基础入门到数据分析实战,为您提供系统性的Python学习路径课程由北京大学计算机系精心设计,结合理论与实践,注重培养学生的编程思维和解决实际问题的能力无论您是编程初学者还是希望深入学习的开发者,都能在这里找到适合的学习内容Python课程简介精选核心内容精选北京大学教程核心内容,涵盖最重要的编程概念和实Python践技能完整教学体系涵盖小时完整教学内容,确保学习的系统性和完整性128实战导向从零基础到数据分析实战,注重理论与实践的有机结合广泛适用性适合各层次学习者使用,满足不同背景学生的学习需求课程概览全面基础覆盖实践驱动学习全面覆盖基础与应用,确保学生建立扎实的编程基结合实例讲解核心编程概念,注重实践与项目驱动学习通Python础从基本语法到高级特性,循序渐进地引导学生掌握过大量的编程练习和实际项目,让学生在实践中学习,在学编程的精髓习中实践Python课程内容经过精心设计,每个知识点都配有详细的讲解和丰由北大陈斌教授授课设计,融入多年教学经验和行业实践,富的示例代码,帮助学生更好地理解和掌握编程技确保课程内容的前沿性和实用性,为学生提供高质量的学习Python术体验学习目标掌握基础知识掌握编程基础知识,包括语法规则、数据类型、控制结构等Python核心概念数据分析能力熟练运用进行数据分析,掌握、等重要数据Python NumPy Pandas科学库的使用方法问题解决能力培养解决实际问题的编程能力,学会分析问题、设计算法、编写高质量代码进阶学习基础为进阶学习打下坚实基础,具备继续深入学习机器学习、数据科学等领域的能力第一部分基础入门Python环境搭建简介Python配置开发环境和工具Python了解的历史发展和特点Python基础语法学习基本语法规则Python控制结构数据类型学习条件语句和循环结构掌握核心数据类型Python简介Python起源与发展1由于年创造,以其简洁优雅Python Guidovan Rossum1989的语法和强大的功能库而闻名经过多年的发展,30Python已成为世界上最受欢迎的编程语言之一版本差异2与是两个重要版本分支,于Python2Python3Python3年发布,解决了许多设计问题目前已停止维2008Python2护,推荐使用进行新项目开发Python3应用领域3在各领域都有广泛应用,包括开发、数据科学、Python Web人工智能、自动化运维、科学计算等其简单易学的特性使其成为理想的入门编程语言开发环境搭建使用Jupyter Notebook选择与配置IDE是交互式编程环境,特别适合Jupyter Notebook解释器安装Python推荐使用PyCharm或VS Code作为Python开发环数据分析和机器学习项目它支持代码、文本、图首先从Python官网下载最新版本的Python解释境PyCharm提供了强大的代码提示、调试和项表的混合展示,便于学习和实验器,选择适合您操作系统的版本安装过程中注意目管理功能,特别适合大型项目开发轻VS Code通过安装,然后在命令行运行pip installjupyter勾选Add Pythonto PATH选项,这样可以在命量级且扩展丰富,适合快速开发和学习启动服务浏览器会自动打开jupyter notebook令行中直接使用命令PythonAnaconda是一个优秀的Python科学计算发行Jupyter界面,您可以创建新的notebook开始编安装完成后,打开命令行输入python--version验版,集成了众多数据科学库,同时提供conda包管程证安装是否成功正确安装后会显示Python的版理器,方便环境管理和包安装本信息基本语法规则缩进与代码块变量命名规范注释与规范使用缩进来表示代码块,而不是变量名必须以字母或下划线开头,可以包使用进行单行注释,三引号用于多行注Python#大括号标准缩进为个空格,所有同级含字母、数字和下划线区分大释或文档字符串良好的注释习惯有助于4Python别的代码必须保持相同的缩进缩进错误小写,建议使用小写字母和下划线的组代码的理解和维护会导致异常合IndentationError遵循编码规范,包括每行不超过PEP879正确的缩进不仅是语法要求,更是良好编避免使用关键字和内置函数名作个字符、函数和类之间空两行、运算符前Python程习惯的体现,有助于提高代码的可读性为变量名选择有意义的变量名,如后加空格等规则,提高代码质量和维护性比更容易理解user_name n变量与数据类型数值类型支持整数()、浮点数()和复数()三种数值类型整数没有大小限制,浮点数支持科学计数法表示,复数用表示虚部Python intfloat complexj数值类型支持基本的算术运算,包括加减乘除、幂运算和取模运算会自动处理不同数值类型间的运算Python字符串操作字符串可以用单引号、双引号或三引号定义三引号支持多行字符串字符串是不可变对象,任何修改操作都会创建新的字符串对象字符串支持索引、切片、拼接、重复等操作常用方法包括、、、等,用于字符串处理和格式化split joinreplace strip布尔与转换布尔类型只有和两个值,用于逻辑判断在条件语句中,空值、、空字符串、空列表等都被视为True False0False提供、、、等函数进行类型转换使用函数查看变量类型,函数检查类型归属Python intfloat strbool typeisinstance数据结构列表-列表推导式优雅简洁的列表创建方式常用方法、、、等操作append extendinsert remove访问元素索引和切片操作创建列表使用或函数[]list列表是中最常用的数据结构之一,它是有序的、可变的元素集合列表可以存储不同类型的数据,支持嵌套使用掌握列表操作是Python编程的基础技能,对后续学习数据分析和算法实现都很重要Python数据结构字典-字典创建使用或函数创建键值对集合{}dict键值操作通过键访问、修改、删除值字典推导式高效创建字典的简洁语法数据处理应用统计分析和数据映射场景字典是中的映射类型,以键值对形式存储数据键必须是不可变类型且唯一,值可以是任意类型字典在数据处理、配置管理、缓存实Python现等场景中应用广泛,是高效数据组织的重要工具数据结构元组与集合-数据类型可变性重复元素主要用途列表可变允许存储有序数据list序列元组不可变允许存储不变的数tuple据组合集合可变不允许去重和集合运set算字典可变键不重复键值对映射存dict储元组的不可变特性使其适合存储坐标、配置信息等固定数据集合基于哈希表实现,提供高效的成员检测和去重功能理解各数据结构的特性和性能差异,有助于在实际编程中做出正确的选择条件语句条件判断分支执行使用比较运算符和逻辑运算符构建条根据条件真假执行不同代码块,if-件表达式,支持多重条件组合提供多分支选择elif-else最佳实践嵌套结构避免过深嵌套,使用逻辑运算符简化条件语句可以嵌套使用,但要注意缩条件,提高代码质量进层次和代码可读性循环结构23主要循环类型控制语句循环和循环、、for whilebreak continueelse∞嵌套深度支持多层循环嵌套循环适合遍历可迭代对象,如列表、字符串、范围等循环基于条件控制,适合for while未知循环次数的场景语句跳出循环,跳过当前迭代,子句在循环正break continueelse常结束时执行循环嵌套时要注意时间复杂度,避免不必要的多重循环合理使用函数、range函数和函数可以让循环更加高效和enumerate zippythonic函数定义与使用函数基本结构参数传递方式返回值与文档使用关键字定义函数,包含函数名、支持位置参数、关键字参数、默认参函数可以返回单个值或多个值(元组形def参数列表和函数体良好的函数设计应数、可变参数等多种参数类型理解参式)编写清晰的文档字符串是良好编该功能单
一、职责明确,遵循单一职责数传递机制有助于编写灵活的函数接程习惯,有助于代码维护和团队协作原则口模块与包模块是代码的基本组织单位,一个文件就是一个模块包是模块的集合,通过文件定义包结构合理的Python.py__init__.py模块化设计有助于代码复用和项目管理拥有丰富的标准库和第三方库生态使用工具可以方便地安装和管理第三方包掌握模块导入的各种方式,如Python pip、、别名等,是编程的重要技能import from...import asPython第二部分进阶内容Python面向对象类与对象、继承多态异常处理错误捕获与处理机制文件操作文件读写与管理高级特性装饰器、生成器等面向对象编程类与对象概念类是对象的模板,定义了对象的属性和方法对象是类的实例,具有类定义的特征和行为理解类和对象的关系是面向对象编程的基础构造函数与方法方法是构造函数,用于初始化对象属性实例方法、类方法和静态方法提__init__供了不同的功能实现方式,满足各种编程需求继承与多态继承允许子类获得父类的属性和方法,实现代码复用多态使不同类的对象可以响应相同的方法调用,提高代码的灵活性和扩展性封装特性通过私有属性和方法实现封装,保护对象内部状态使用属性装饰器可以控制属性的访问和修改,增强代码的安全性和健壮性异常处理文件操作文件打开与模式读写操作方法使用函数打开文件,支持多种模式读取、写读取方法包括、、等,分别用open rw readreadline readlines入、追加、二进制等正确选择文件模式是文件操作的于读取全部内容、单行内容或所有行写入方法有和a bwrite前提writelines文件操作完成后必须调用方法释放资源推荐使用二进制文件处理需要使用模式,适合处理图片、音频、视close b语句进行文件操作,它会自动处理文件的打开和关闭频等非文本文件文件指针操作可以实现随机访问文件内with容正则表达式基本匹配规则常用匹配模式模块应用re正则表达式使用特殊字符定义匹配模式边界匹配符表示行首,表示行尾分组的模块提供了完整的正则表达^$Python re点号匹配任意字符,星号表示零次或用圆括号表示,可以提取匹配的子串非式功能查找第一个匹配,.*search多次,加号表示一次或多次,问号贪婪匹配在量词后加,如、等查找所有匹配,进行替换操+*+findall sub表示零次或一次作预定义字符类简化了常见模式的编写函数预编译正则表达式,提高\s compile字符类用方括号表示,如匹配小写字匹配空白字符,匹配非空白字符,匹重复使用时的性能在实际文本处理中,[a-z]\S\b母转义字符用于匹配特殊字符本身,配单词边界,提高了正则表达式的可读正则表达式是数据清洗和信息提取的重要\\d匹配数字,匹配字母数字下划线性工具\w函数式编程表达式lambda是创建匿名函数的简洁方式,语法为参数表达式它适合编写lambda lambda:简单的单行函数,常与、、等函数结合使用map filtersort虽然表达式简洁,但不应滥用复杂逻辑仍建议使用定义的命名函lambda def数,以提高代码可读性和可维护性与函数map filter函数将函数应用到可迭代对象的每个元素上,返回新的迭代器map filter函数过滤序列,保留使函数返回的元素True这些高阶函数体现了函数式编程的思想,避免了显式的循环,使代码更加简洁和表达力强在数据处理场景中应用广泛与应用reduce函数对序列中的元素进行累积操作,需要从模块导入reduce functools它将二元函数累积地应用到序列元素上,最终得到单个结果函数式编程强调不可变性和无副作用,鼓励使用纯函数这种编程范式有助于编写更可预测、更容易测试的代码迭代器与生成器可迭代对象实现了方法的对象称为可迭代对象,如列表、字符串、字典等可__iter__迭代对象可以在循环中使用,也可以通过函数获得迭代器for iter迭代器协议迭代器必须实现和方法返回迭代器对象本身,__iter____next____iter__返回下一个值,没有更多值时抛出异常__next__StopIteration生成器定义生成器是特殊的迭代器,使用关键字定义与普通函数不同,生成器yield函数在处暂停执行,下次调用时从暂停处继续,具有记忆功能yield内存优势生成器采用惰性求值,只在需要时计算下一个值,大大节省内存处理大数据集时,生成器比列表更高效,避免了一次性加载所有数据装饰器高级装饰器类装饰器和参数化装饰器带参数装饰器接收参数的装饰器工厂函数函数装饰器修改或增强函数功能基本原理函数作为参数和返回值装饰器是中优雅的设计模式,允许在不修改原函数代码的情况下增加功能常见应用包括日志记录、性能测试、访问控制、缓存等Python装饰器可以保持被装饰函数的元信息装饰器的执行顺序是从下到上,理解这一点对于正确使用多个装饰器很重要@functools.wraps上下文管理器进入上下文执行代码块执行方法,获取资源或设运行语句块中的代码,享受上下__enter__with置环境,返回值可被子句捕获文管理器提供的环境as异常处理退出上下文方法可以处理异常,返回__exit__无论正常退出还是异常退出,都会执表示异常已处理,表示继True False行方法,确保资源清理__exit__续传播第三部分数据分析基础数值数据数据可视化NumPyPandas计算处理使用Matplotlib高性能的多维数专业的数据分析和创建Seaborn组对象和数学函库,提供各种统计图表,数库,是数据科DataFrame和将数据转化为直学的基础工具Series数据结观的视觉信息提供了强大的矢构,简化数据清量化运算能力洗和分析工作实战案例通过真实项目学习数据分析流程,从数据收集到结果展示的完整工作流程基础NumPy数组创建与操作矢量化与广播的核心是对象,支持多维数组操作使用矢量化运算避免了循环的低效率,直接在层面进行NumPy ndarrayPython C、、、等函数计算数组间的算术运算会自动应用到每个元素上np.array np.zeros np.ones np.arange创建数组广播机制允许不同形状的数组进行运算,会自动调NumPy数组支持索引、切片、重塑等操作改变数组形整较小数组的形状掌握广播规则有助于编写高效的数值计reshape状,展平数组,转置数组这些操作为算代码flatten transpose数据处理提供了灵活性入门Pandas250+核心数据结构文件格式支持和、、等Series DataFrameCSV ExcelJSON100+数据操作方法查询、聚合、连接等是一维标记数组,类似于带标签的数组是二维标记数据Series NumPyDataFrame结构,类似于表格或数据表,是的主要数据结构Excel SQLPandas提供了强大的数据功能,可以读取和写入多种格式的数据文件索引和切Pandas IO片操作支持标签和位置两种方式,数据清洗功能包括缺失值处理、重复值删除等数据处理与转换数据重塑使用创建透视表,进行长宽格式转换数据重塑pivot_table melt是分析前的重要准备工作分组聚合操作实现分组统计,配合聚合函数如、、groupby summean等进行数据汇总分析count时间序列索引支持时间序列分析,包括重采样、滚动窗口、时间偏DateTime移等高级时间操作数据合并、、函数实现数据集的连接操作,类似于merge joinconcat的语句SQL JOIN数据可视化基础是最重要的绘图库,提供了类似的绘图接口其分层架构包括后端层、美工层和脚本层,支持多Matplotlib PythonMATLAB种输出格式和是的核心概念是整个图形窗口,是绘图区域掌握这些概念有助于创建复杂的多子图Figure AxesMatplotlib FigureAxes布局和自定义图表样式高级可视化统计图Seaborn基于构建的高级统计可视化库Matplotlib交互式图表和创建动态交互图表Plotly Bokeh地理数据可视化和处理地理信息Folium Geopandas可视化最佳实践色彩搭配、图表选择和设计原则提供了更美观的默认样式和专门的统计图表类型,如热力图、小提琴图、分布图等它与数据结构无缝集成,简化了数据可视化流程Seaborn Pandas现代数据可视化强调交互性和用户体验合理选择图表类型、使用恰当的色彩方案、保持图表简洁清晰是创建有效可视化的关键原则数据分析案例股票市场数据分析使用yfinance库获取股票历史数据,计算移动平均线、相对强弱指数等技术指标通过pandas进行数据清洗和特征工程,matplotlib绘制K线图和成交量图表社交网络数据挖掘分析用户互动模式、信息传播路径和社区结构使用NetworkX库构建社交网络图,计算节点中心性、聚类系数等网络指标,识别关键意见领袖和社群结构用户行为分析通过用户访问日志分析用户行为模式,构建用户画像和行为漏斗使用cohort分析跟踪用户留存率,A/B测试评估产品改进效果,为业务决策提供数据支持第四部分应用开发Python数据库操作和数据库集SQL NoSQL开发成机器学习Web框架构建应用智能算法和模型应用Flask Web网络爬虫图像处理自动化数据采集技术计算机视觉技术应用网络爬虫基础协议基础库使用数据解析与伦理HTTP Requests理解请求方法(、等)和是最流行的库,提提供了直观的解析接HTTP GETPOST RequestsPython HTTPBeautiful SoupHTML响应状态码掌握请求头、响应头的作供了简洁的支持、请求,口,支持选择器和表达式API GETPOST CSSXPath lxml用,了解和机制自动处理重定向、证书验证等解析器性能更高,适合大规模数据处理Cookie SessionSSL是无状态协议,每次请求都是独立会话对象可以跨请求保持某些参数,如爬虫开发需要遵守协议,尊重网HTTP robots.txt的理解这一特点有助于设计稳定的爬虫、连接池和超时设置有站的访问限制合理控制请求频率,避免cookies headers程序,正确处理会话保持和状态管理助于提高爬虫的稳定性和效率给目标服务器造成过大负担,体现技术伦理高级爬虫技术自动化Selenium可以控制真实浏览器,执行代码,处理动态内Selenium JavaScript容适合爬取单页应用和需要用户交互的网站异步爬虫使用和实现异步爬虫,大幅提高并发处理能力异步aiohttp asyncio编程模式特别适合密集型的网络爬虫任务IO反爬虫应对应对验证码、封禁、用户代理检测等反爬虫机制使用代理池、请IP求头轮换、验证码识别等技术绕过限制分布式架构框架支持分布式爬虫开发,做队列管理,多机协作提高Scrapy Redis采集效率适合大规模数据采集项目开发入门Web框架基础Flask是轻量级的框架,基于和构建它遵循微框架理念,核心简Flask WebWerkzeug Jinja2单但可扩展性强,适合快速原型开发和小型应用应用的基本结构包括应用实例、路由定义和视图函数通过装饰器Flask@app.route定义路由,视图函数处理具体的业务逻辑URL路由与视图设计路由系统支持变量规则、方法限制、构建等功能视图函数可以返回字符HTTP URL串、模板或对象,灵活处理不同类型的响应Response蓝图()机制支持应用模块化,便于大型项目的组织和管理中间件和钩Blueprint子函数提供了请求处理的扩展点模板与表单模板引擎提供了强大的模板功能,支持变量替换、循环、条件判断、模板Jinja2继承等特性模板分离了视图逻辑和展示逻辑扩展简化了表单处理,提供保护、数据验证、文件上传等功Flask-WTF CSRF能表单验证确保数据的完整性和安全性数据库操作机器学习基础机器学习工作流程典型的机器学习项目包括数据收集、数据预处理、特征工程、模型选择、训练评估、模型部署等阶段每个阶段都有特定的技术和方法数据预处理技术数据清洗包括处理缺失值、异常值检测、数据类型转换等特征缩放、编码分类变量、特征选择是常见的预处理步骤模型评估方法交叉验证提供了模型性能的可靠估计分类任务使用准确率、精确率、召回率、分数等指标,回归任务使用、、等指标F1MSE MAER²常用算法介绍线性回归、逻辑回归、决策树、随机森林、、等算法各有特点理解SVM KNN算法原理有助于选择合适的模型解决具体问题深度学习入门框架选择与基础模型训练与优化和是最流行的深度学习框架深度学习模型训练需要大量数据和计算资源梯度下降及其TensorFlow PyTorch生态完善,生产部署成熟;研究友变体(、等)是主要的优化算法学习率调度和TensorFlow PyTorchSGD Adam好,动态图机制直观正则化技术防止过拟合神经网络由输入层、隐藏层和输出层组成每层包含多个神迁移学习利用预训练模型的知识,在新任务上进行微调这经元,通过权重连接激活函数引入非线性,反向传播算法种方法大大降低了训练成本,提高了模型性能,特别适合数优化参数据有限的场景。
个人认证
优秀文档
获得点赞 0