简述

了解 Python 计算生态的宽度和广度,了解各领域重要计算生态的名字,体会编程之美。

课件

9.pdf

导学

复习

[10.1.1]--前课复习(1).mp4 (31.96MB).mp4%22%2C%22size%22%3A33516297%2C%22taskId%22%3A%22u256471eb-69a9-4baf-bd06-52eb231e291%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688483361525-1891f5ff-4e48-4113-abbd-f759b9a6ed4a.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22qamyQ%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#qamyQ)

概要

[10.1.2]--本课概要(1).mp4 (17.94MB).mp4%22%2C%22size%22%3A18813450%2C%22taskId%22%3A%22u6e07c25b-cd9e-4050-aea8-671e9cacde5%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688483361522-a0dad879-228c-4484-b006-ef4033e65a3d.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22f19LW%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#f19LW)

从数据处理到人工智能

单元开篇

[10.2.1]--单元开篇(1).mp4 (36.97MB).mp4%22%2C%22size%22%3A38769177%2C%22taskId%22%3A%22ua1b992ec-0b79-45be-b8fd-5043647f443%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688483368670-f0819b24-e511-4d68-addd-15811554716f.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22iwJ68%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#iwJ68) 数据表示->数据清洗->数据统计->数据可视化->数据挖掘->人工智能

  1. 数据表示:采用合适方式用程序表达数据
  2. 数据清理:数据归一化、数据转换、异常值处理
  3. 数据统计:数据的概要理解,数量、分布、中位数等
  4. 数据可视化:直观展示数据内涵的方式
  5. 数据挖掘:从数据分析获得知识,产生数据外的价值
  6. 人工智能:数据/语言/图像/视觉等方面深度分析与决策

Python 库之数据分析

[10.2.2]--Python库之数据分析(1).mp4 (67.14MB).mp4%22%2C%22size%22%3A70403893%2C%22taskId%22%3A%22u80b8ab67-36df-45b4-b702-d2ab4ce830d%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688483368688-4f6f2804-09e7-417d-8481-73f55849d02f.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22dVqkT%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#dVqkT) Numpy: 表达N维数组的最基础库

  • Python 接口使用,C 语言实现,计算速度优异
  • Python 数据分析及科学计算的基础库,支撑 Pandas 等
  • 提供直接的矩阵运算、广播函数、线性代数等功能

Numpy 链接:https://numpy.org/

  1. def pySum():
  2. a = [0, 1, 2, 3, 4]
  3. b = [9, 8, 7, 6, 5]
  4. c = []
  5. for i in range(len(a)):
  6. c.append(a[i] ** 2 + b[i] ** 3)
  7. return c
  8. print(pySum()) # [729, 513, 347, 225, 141]
  1. import numpy as np
  2. def pySum2():
  3. a = np.array([0, 1, 2, 3, 4])
  4. b = np.array([9, 8, 7, 6, 5])
  5. c = a**2 + b**3
  6. return c
  7. print(pySum2()) # [729 513 347 225 141]

Pandas: Python数据分析高层次应用库

  • 提供了简单易用的数据结构和数据分析工具
  • 理解数据类型与索引的关系,操作索引即操作数据
  • Python 最主要的数据分析功能库,基于 Numpy 开发

Pandas 链接:http://pandas.pydata.org/

image.png


SciPy: 数学、科学和工程计算功能库

  • 提供了一批数学算法及工程数据运算功能
  • 类似 Matlab,可用于如傅里叶变换、信号处理等应用
  • Python 最主要的科学计算功能库,基于 Numpy 开发

SciPy 链接:https://scipy.org/

image.png

Python 库之数据可视化

[10.2.3]--Python库之数据可视化(1).mp4 (51.67MB).mp4%22%2C%22size%22%3A54183105%2C%22taskId%22%3A%22u92d00785-de77-45c9-aca1-6f797f7e475%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688483368676-d14d1c2f-8338-4747-8404-f9f765a4759f.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22D5rWw%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#D5rWw) Matplotlib: 高质量的二维数据可视化功能库

  • 提供了超过100种数据可视化展示效果
  • 通过matplotlib.pyplot子库调用各可视化效果
  • Python最主要的数据可视化功能库,基于Numpy开发

https://matplotlib.org/

image.png


Seaborn: 统计类数据可视化功能库

  • 提供了一批高层次的统计类数据可视化展示效果
  • 主要展示数据间分布、分类和线性关系等内容
  • 基于Matplotlib开发,支持Numpy和Pandas

image.png

Mayavi:三维科学数据可视化功能库

  • 提供了一批简单易用的3D科学计算数据可视化展示效果
  • 目前版本是Mayavi2,三维可视化最主要的第三方库
  • 支持Numpy、TVTK、Traits、Envisage等第三方库

image.png

Python 库之文本处理

[10.2.4]--Python库之文本处理(1).mp4 (52.18MB).mp4%22%2C%22size%22%3A54713289%2C%22taskId%22%3A%22u6043bfdd-493e-47f5-9aaf-99c6cbdacfd%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688483382194-890c8be3-886b-4788-9049-2171bd636262.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22xeyZO%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#xeyZO) PyPDF2:用来处理pdf文件的工具集

  • 提供了一批处理 PDF 文件的计算功能
  • 支持获取信息、分隔/整合文件、加密解密等
  • 完全 Python 语言实现,不需要额外依赖,功能稳定

PyPDF2 doc:https://pypdf2.readthedocs.io/en/3.0.0/
PyPDF2 pypi:https://pypi.org/project/PyPDF2/


NLTK:自然语言文本处理第三方库

  • 提供了一批简单易用的自然语言文本处理功能
  • 支持语言文本分类、标记、语法句法、语义分析等
  • 最优秀的Python自然语言处理库

https://www.nltk.org/

image.png


Python-docx:创建或更新 Microsoft Word 文件的第三方库

  • 提供创建或更新 .doc .docx 等文件的计算功能
  • 增加并配置段落、图片、表格、文字等,功能全面

https://python-docx.readthedocs.io/en/latest/index.html

Python 库之机器学习

[10.2.5]--Python库之机器学习(1).mp4 (54.13MB).mp4%22%2C%22size%22%3A56756734%2C%22taskId%22%3A%22u8a9fc4d4-30fe-4fb9-9f6e-fa5faf053e2%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688483392503-0d3eeff8-3f28-4a55-9d18-1cf9212f5ec9.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22GAjqj%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#GAjqj) Scikit-learn:机器学习方法工具集

  • 提供一批统一化的机器学习方法功能接口
  • 提供聚类、分类、回归、强化学习等计算功能
  • 机器学习最基本且最优秀的 Python 第三方库

https://scikit-learn.org/stable/

与数据处理相关的第三方库:

image.png

image.png


TensorFlow:AlphaGo 背后的机器学习计算框架

  • 谷歌公司推动的开源机器学习框架
  • 将数据流图作为基础,图节点代表运算,边代表张量
  • 应用机器学习方法的一种方式,支撑谷歌人工智能应用

https://www.tensorflow.org/?hl=zh-cn

image.png


MXNet:基于神经网络的深度学习计算框架

  • 提供可扩展的神经网络及深度学习计算功能
  • 可用于自动驾驶、机器翻译、语音识别等众多领域
  • Python最重要的深度学习计算框架

https://mxnet.incubator.apache.org/versions/1.9.1/

image.png

单元小结

[10.2.6]--单元小结(1).mp4 (18.31MB).mp4%22%2C%22size%22%3A19196044%2C%22taskId%22%3A%22ucc5aaf50-b515-4c50-9380-78f6717f142%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688483408110-b54fb68e-a4ce-48a4-b2fb-5503efa8c648.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22Fdt4V%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#Fdt4V)

  • Numpy、Pandas、SciPy
  • Matplotlib、Seaborn、Mayavi
  • PyPDF2、NLTK、python-docx
  • Scikit-learn、TensorFlow、MXNet

实例 15: 霍兰德人格分析雷达图

问题分析

[10.3.1]--霍兰德人格分析雷达图问题分析(1).mp4 (50.49MB).mp4%22%2C%22size%22%3A52938217%2C%22taskId%22%3A%22u48db71a0-2372-4f92-a0e9-b6dcd276a9b%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688483420677-ba5c4ddb-0cc0-4a44-9f9e-f194242033c6.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22EC4tA%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#EC4tA)

实例展示

[10.3.2]--霍兰德人格分析雷达图实例展示(1).mp4 (29.76MB).mp4%22%2C%22size%22%3A31201989%2C%22taskId%22%3A%22u1b2b2703-31bf-48b1-aada-5200474203d%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688483425770-be6eb2bb-f8b1-483d-80e6-b6330b79a5d2.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22YKRu0%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#YKRu0)

  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. import matplotlib
  4. # 需要是系统带有的字体
  5. matplotlib.rcParams["font.family"] = "Hiragino Sans GB"
  6. radar_labels = np.array(
  7. ["研究型(I)", "艺术型(A)", "社会型(S)", "企业型(E)", "常规型(C)", "现实型(R)", "研究型(I)"]
  8. ) # 雷达标签,增加一个起始元素以与 angles 数组长度匹配
  9. nAttr = 6
  10. data = np.array(
  11. [
  12. [0.40, 0.32, 0.35, 0.30, 0.30, 0.88],
  13. [0.85, 0.35, 0.30, 0.40, 0.40, 0.30],
  14. [0.43, 0.89, 0.30, 0.28, 0.22, 0.30],
  15. [0.30, 0.25, 0.48, 0.85, 0.45, 0.40],
  16. [0.20, 0.38, 0.87, 0.45, 0.32, 0.28],
  17. [0.34, 0.31, 0.38, 0.40, 0.92, 0.28],
  18. ]
  19. ) # 数据值
  20. data_labels = ("艺术家", "实验员", "工程师", "推销员", "社会工作者", "记事员")
  21. angles = np.linspace(0, 2 * np.pi, nAttr, endpoint=False)
  22. data = np.concatenate((data, [data[0]]))
  23. angles = np.concatenate((angles, [angles[0]]))
  24. fig = plt.figure(facecolor="white")
  25. plt.subplot(111, polar=True)
  26. plt.plot(angles, data, "o-", linewidth=1, alpha=0.2)
  27. plt.fill(angles, data, alpha=0.25)
  28. plt.thetagrids(angles * 180 / np.pi, radar_labels) # 移除 frac 参数
  29. plt.figtext(0.52, 0.95, "霍兰德人格分析", ha="center", size=20)
  30. legend = plt.legend(data_labels, loc=(0.94, 0.80), labelspacing=0.1)
  31. plt.setp(legend.get_texts(), fontsize="large")
  32. plt.grid(True)
  33. plt.savefig("holland_radar.jpg")
  34. plt.show()

image.png

举一反三

[10.3.3]--霍兰德人格分析雷达图举一反三(1).mp4 (29.4MB).mp4%22%2C%22size%22%3A30832082%2C%22taskId%22%3A%22u8f3137dc-691d-4afb-a8ac-bed21618f82%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688483427057-fd34005f-e760-4497-ba05-4d168255f628.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22qO0EW%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#qO0EW)

从 Web 解析到网络空间

单元开篇

[10.4.1]--单元开篇(1).mp4 (10.45MB).mp4%22%2C%22size%22%3A10960100%2C%22taskId%22%3A%22uc9ec6749-ab87-414f-a90d-7be7cbf1263%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688483427849-01bb461e-d376-45b3-b0be-d7863972861f.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22J1ZWy%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#J1ZWy)

Python 库之网络爬虫

[10.4.2]--Python库之网络爬虫(1).mp4 (55.73MB).mp4%22%2C%22size%22%3A58433954%2C%22taskId%22%3A%22u38582820-3fe0-4dfc-ab2d-305bf6dd359%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688483436964-df6dfed4-68f5-4512-8027-717ec047646b.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22Au20Z%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#Au20Z) Requests: 最友好的网络爬虫功能库

  • 提供了简单易用的类HTTP协议网络爬虫功能
  • 支持连接池、SSL、Cookies、HTTP(S)代理等
  • Python最主要的页面级网络爬虫功能库

https://pypi.org/project/requests/
https://requests.readthedocs.io/en/latest/


Scrapy: 优秀的网络爬虫框架

  • 提供了构建网络爬虫系统的框架功能,功能半成品
  • 支持批量和定时网页爬取、提供数据处理流程等
  • Python最主要且最专业的网络爬虫框架

https://scrapy.org/

Scrapy: Python数据分析高层次应用库

Scrapy 架构


pyspider: 强大的Web页面爬取系统

  • 提供了完整的网页爬取系统构建功能
  • 支持数据库后端、消息队列、优先级、分布式架构等
  • Python重要的网络爬虫类第三方库

http://docs.pyspider.org/en/latest/

Python 库之 Web 信息提取

[10.4.3]--Python库之Web信息提取(1).mp4 (64.45MB).mp4%22%2C%22size%22%3A67582033%2C%22taskId%22%3A%22uf05dd609-d4b9-42ca-89f3-03d98a725ea%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688483447473-e0a47b4a-09f7-4f5a-b3f4-c304e4661ced.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22yatV1%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#yatV1) Beautiful Soup: HTML 和 XML 的解析库

  • 提供了解析HTML和XML等Web信息的功能
  • 又名beautifulsoup4或bs4,可以加载多种解析引擎
  • 常与网络爬虫库搭配使用,如Scrapy、requests等

image.png

https://www.crummy.com/software/BeautifulSoup/


Re: 正则表达式解析和处理功能库

  • 提供了定义和解析正则表达式的一批通用功能
  • 可用于各类场景,包括定点的Web信息提取
  • Python最主要的标准库之一,无需安装

API:

  • re.search()
  • re.match()
  • re.findall()
  • re.split()
  • re.finditer()
  • re.sub()

https://docs.python.org/zh-cn/3.10/library/re.html


Python-Goose: 提取文章类型Web页面的功能库

  • 提供了对Web页面中文章信息/视频等元数据的提取功能
  • 针对特定类型Web页面,应用覆盖面较广
  • Python最主要的Web信息提取库

https://github.com/grangier/python-goose

Python 库之 Web 网站开发

[10.4.4]--Python库之Web网站开发(1).mp4 (60.25MB).mp4%22%2C%22size%22%3A63175239%2C%22taskId%22%3A%22ude014113-df3f-413f-97ed-9de1abfbf7b%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688483453121-0f330aa3-c202-4331-b77b-c7e6c203d464.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22wUjxQ%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#wUjxQ) Django: 最流行的Web应用框架

  • 提供了构建Web系统的基本应用框架
  • MTV模式:模型(model)、模板(Template)、视图(Views)
  • Python最重要的Web应用框架,略微复杂的应用框架

image.png

https://www.djangoproject.com/


Pyramid: 规模适中的Web应用框架

  • 提供了简单方便构建Web系统的应用框架
  • 不大不小,规模适中,适合快速构建并适度扩展类应用
  • Python产品级Web应用框架,起步简单可扩展性好

https://trypyramid.com/


Flask: Web应用开发微框架

  • 提供了最简单构建Web系统的应用框架
  • 特点是:简单、规模小、快速
  • Django > Pyramid > Flask

https://flask.palletsprojects.com/en/2.3.x/

Python 库之网络应用开发

[10.4.5]--Python库之网络应用开发(1).mp4 (36.56MB).mp4%22%2C%22size%22%3A38336232%2C%22taskId%22%3A%22ub2703507-f713-43de-84b1-d1ca0f9c3f5%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688483453631-895d7f35-5ca5-4383-9f24-34a36c376bc1.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22i7r0W%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#i7r0W) WeRoBot:微信公众号开发框架

  • 提供了解析微信服务器消息及反馈消息的功能
  • 建立微信机器人的重要技术手段

https://github.com/offu/WeRoBot


aip: 百度AI开放平台接口

  • 提供了访问百度AI服务的Python功能接口
  • 语音、人脸、OCR、NLP、知识图谱、图像搜索等领域
  • Python百度AI应用的最主要方式

https://github.com/Baidu-AIP/python-sdk
https://ai.baidu.com/


MyQR: 二维码生成第三方库

  • 提供了生成二维码的系列功能
  • 基本二维码、艺术二维码和动态二维码

https://github.com/x-hw/amazing-qr

image.png

居然还能生成会动的二维码!!! 0.gif

单元小结

[10.4.6]--单元小结(1).mp4 (15.24MB).mp4%22%2C%22size%22%3A15978912%2C%22taskId%22%3A%22ucb594f83-4761-45f8-9bf2-04268db9e72%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688483458386-cd676813-bbfb-46b8-99a8-ad5e899e1aaa.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22Lkoye%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#Lkoye)

  • Requests、Scrapy、pyspider
  • Beautiful Soup、Re、Python-Goose
  • Django、Pyramid、Flask
  • WeRobot、aip、MyQR

从人机交互到艺术设计

单元开篇

[10.5.1]--单元开篇(1).mp4 (6.28MB).mp4%22%2C%22size%22%3A6583928%2C%22taskId%22%3A%22u7520d5f7-46a2-4c99-92f2-511fb37825d%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688483478393-267ee77e-1433-4ca7-bc57-4d5a729dfb17.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22WAsKA%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#WAsKA)

Python 库之图形用户界面

[10.5.2]--Python库之图形用户界面(1).mp4 (61.47MB).mp4%22%2C%22size%22%3A64460653%2C%22taskId%22%3A%22u88559b08-3f4c-4d16-9701-817677b5c31%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688483479278-743c918e-0b4c-4963-ba65-3f29bc37067e.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22LaGOO%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#LaGOO) PyQt5: Qt开发框架的Python接口

  • 提供了创建Qt5程序的Python API接口
  • Qt是非常成熟的跨平台桌面应用开发系统,完备GUI
  • 推荐的Python GUI开发第三方库

https://www.riverbankcomputing.com/software/pyqt


wxPython: 跨平台GUI开发框架

  • 提供了专用于Python的跨平台GUI开发框架
  • 理解数据类型与索引的关系,操作索引即操作数据
  • Python最主要的数据分析功能库,基于Numpy开发

https://www.wxpython.org/


PyGObject: 使用GTK+开发GUI的功能库

  • 提供了整合GTK+、WebKitGTK+等库的功能
  • GTK+:跨平台的一种用户图形界面GUI框架
  • 实例:Anaconda采用该库构建GUI

https://pygobject.readthedocs.io/en/latest/

Python 库之游戏开发

[10.5.3]--Python库之游戏开发(1).mp4 (47.88MB).mp4%22%2C%22size%22%3A50204895%2C%22taskId%22%3A%22u8d9df3dc-77c0-4c52-b3c3-532e705ad88%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688483483159-6b6b3b7a-fa9b-4e4a-b5f1-0c12fdf494a4.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22vDbHR%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#vDbHR) PyGame: 简单的游戏开发功能库

  • 提供了基于SDL的简单游戏开发功能及实现引擎
  • 理解游戏对外部输入的响应机制及角色构建和交互机制
  • Python游戏入门最主要的第三方库

https://www.pygame.org/news


Panda3D: 开源、跨平台的3D渲染和游戏开发库

  • 一个3D游戏引擎,提供Python和C++两种接口
  • 支持很多先进特性:法线贴图、光泽贴图、卡通渲染等
  • 由迪士尼和卡尼基梅隆大学共同开发

https://www.panda3d.org/


cocos2d: 构建2D游戏和图形界面交互式应用的框架

  • 提供了基于OpenGL的游戏开发图形渲染功能
  • 支持GPU加速,采用树形结构分层管理游戏对象类型
  • 适用于2D专业级游戏开发

https://www.cocos.com/cocos2d-x

Python 库之虚拟现实

[10.5.4]--Python库之虚拟现实(1).mp4 (50.76MB).mp4%22%2C%22size%22%3A53223782%2C%22taskId%22%3A%22uce603154-9171-40a0-9d34-21faf36e180%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688483486603-6a1f33fe-07ba-4bca-89f7-8be54c56233c.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22ljxnI%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#ljxnI) VR Zero: 在树莓派上开发VR应用的Python库

  • 提供大量与VR开发相关的功能
  • 针对树莓派的VR开发库,支持设备小型化,配置简单化
  • 非常适合初学者实践VR开发及应用

https://github.com/WayneKeenan/python-vrzero


pyovr: Oculus Rift的Python开发接口

  • 针对Oculus VR设备的Python开发库
  • 基于成熟的VR设备,提供全套文档,工业级应用设备
  • Python+虚拟现实领域探索的一种思路

https://github.com/cmbruns/pyovr


Vizard: 基于Python的通用VR开发引擎

  • 专业的企业级虚拟现实开发引擎
  • 提供详细的官方文档
  • 支持多种主流的VR硬件设备,具有一定通用性

https://www.worldviz.com/vizard-virtual-reality-software

Python 库之图形艺术

[10.5.5]--Python库之图形艺术(1).mp4 (41.92MB).mp4%22%2C%22size%22%3A43957547%2C%22taskId%22%3A%22u08395315-741b-4436-95ca-17e3d9cd13b%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688483487697-244c9ab5-f298-43b2-9da7-e7268b9e7c5e.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22CoOH6%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#CoOH6) Quads: 迭代的艺术

  • 对图片进行四分迭代,形成像素风
  • 可以生成动图或静图图像
  • 简单易用,具有很高展示度

https://github.com/fogleman/Quads


ascii_art: ASCII艺术库

  • 将普通图片转为ASCII艺术风格
  • 输出可以是纯文本或彩色文本
  • 可采用图片格式输出

https://github.com/jontonsoup4/ascii_art


turtle

https://docs.python.org/zh-cn/3/library/turtle.html

单元小结

[10.5.6]--单元小结(1).mp4 (23.2MB).mp4%22%2C%22size%22%3A24332154%2C%22taskId%22%3A%22u19d16810-6712-42eb-9953-ac7d34b503e%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688483489010-805ecf3a-6cb8-4bd2-b5ed-9d196a084869.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22biaYq%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#biaYq) 从人机交互到艺术设计

  • PyQt5、wxPython、PyGObject
  • PyGame、Panda3D、cocos2d
  • VR Zero、pyovr、Vizard
  • Quads、ascii_art、turtle

实例 16: 玫瑰花绘制

问题分析

[10.6.1]--玫瑰花绘制问题分析(1).mp4 (17.55MB).mp4%22%2C%22size%22%3A18407112%2C%22taskId%22%3A%22uaba87dcc-17d5-452d-8847-3c5943e29b5%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688483504224-43140b79-9c6e-46a0-be5e-a2916e637008.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22rskPq%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#rskPq)

实例展示

[10.6.2]--玫瑰花绘制实例展示(1).mp4 (24.4MB).mp4%22%2C%22size%22%3A25584009%2C%22taskId%22%3A%22u7e405ccf-d5f1-4262-a0f8-4e7a96d9982%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688483504908-185e5545-c3c7-4754-a0e9-e8cf12251183.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22W5gvp%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#W5gvp)

  1. import turtle as t
  2. # 定义一个曲线绘制函数
  3. def DegreeCurve(n, r, d=1):
  4. for i in range(n):
  5. t.left(d)
  6. t.circle(r, abs(d))
  7. # 初始位置设定
  8. s = 0.2 # size
  9. t.setup(450 * 5 * s, 750 * 5 * s)
  10. t.pencolor("black")
  11. t.fillcolor("red")
  12. t.speed(100)
  13. t.penup()
  14. t.goto(0, 900 * s)
  15. t.pendown()
  16. # 绘制花朵形状
  17. t.begin_fill()
  18. t.circle(200 * s, 30)
  19. DegreeCurve(60, 50 * s)
  20. t.circle(200 * s, 30)
  21. DegreeCurve(4, 100 * s)
  22. t.circle(200 * s, 50)
  23. DegreeCurve(50, 50 * s)
  24. t.circle(350 * s, 65)
  25. DegreeCurve(40, 70 * s)
  26. t.circle(150 * s, 50)
  27. DegreeCurve(20, 50 * s, -1)
  28. t.circle(400 * s, 60)
  29. DegreeCurve(18, 50 * s)
  30. t.fd(250 * s)
  31. t.right(150)
  32. t.circle(-500 * s, 12)
  33. t.left(140)
  34. t.circle(550 * s, 110)
  35. t.left(27)
  36. t.circle(650 * s, 100)
  37. t.left(130)
  38. t.circle(-300 * s, 20)
  39. t.right(123)
  40. t.circle(220 * s, 57)
  41. t.end_fill()
  42. # 绘制花枝形状
  43. t.left(120)
  44. t.fd(280 * s)
  45. t.left(115)
  46. t.circle(300 * s, 33)
  47. t.left(180)
  48. t.circle(-300 * s, 33)
  49. DegreeCurve(70, 225 * s, -1)
  50. t.circle(350 * s, 104)
  51. t.left(90)
  52. t.circle(200 * s, 105)
  53. t.circle(-500 * s, 63)
  54. t.penup()
  55. t.goto(170 * s, -30 * s)
  56. t.pendown()
  57. t.left(160)
  58. DegreeCurve(20, 2500 * s)
  59. DegreeCurve(220, 250 * s, -1)
  60. # 绘制一个绿色叶子
  61. t.fillcolor("green")
  62. t.penup()
  63. t.goto(670 * s, -180 * s)
  64. t.pendown()
  65. t.right(140)
  66. t.begin_fill()
  67. t.circle(300 * s, 120)
  68. t.left(60)
  69. t.circle(300 * s, 120)
  70. t.end_fill()
  71. t.penup()
  72. t.goto(180 * s, -550 * s)
  73. t.pendown()
  74. t.right(85)
  75. t.circle(600 * s, 40)
  76. # 绘制另一个绿色叶子
  77. t.penup()
  78. t.goto(-150 * s, -1000 * s)
  79. t.pendown()
  80. t.begin_fill()
  81. t.rt(120)
  82. t.circle(300 * s, 115)
  83. t.left(75)
  84. t.circle(300 * s, 100)
  85. t.end_fill()
  86. t.penup()
  87. t.goto(430 * s, -1070 * s)
  88. t.pendown()
  89. t.right(30)
  90. t.circle(-600 * s, 35)
  91. t.done()

image.png

举一反三

[10.6.3]--玫瑰花绘制举一反三(1).mp4 (46.53MB).mp4%22%2C%22size%22%3A48786655%2C%22taskId%22%3A%22u7507f769-7dbb-4a96-9066-35baf3812f5%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688483505715-27353c21-c821-405b-b240-ff0b49726f99.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22EPYze%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#EPYze)

艺术之于编程,设计之于编程

  • 艺术:思想优先,编程是手段
  • 设计:想法和编程同等重要
  • 工程:编程优先,思想次之

编程不重要,思想才重要!

  • 认识自己:明确自己的目标,有自己的思想(想法)
  • 方式方法:编程只是手段,熟练之,未雨绸缪为思想服务
  • 为谁编程:将自身发展与祖国发展相结合,创造真正价值

作业与练习

[10.7.1]--练习与作业(1).mp4 (4.04MB).mp4%22%2C%22size%22%3A4240131%2C%22taskId%22%3A%22uc3d286a3-61e8-45e6-b452-622113edded%22%2C%22taskType%22%3A%22upload%22%2C%22url%22%3Anull%2C%22cover%22%3Anull%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2023%2F2331396%2Fmp4%2F1688483506881-0283c897-8b40-4ea6-92d7-4beb2c933c37.mp4%22%2C%22download%22%3Afalse%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22l4DFe%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22video%22%7D#l4DFe)

补充

函数式编程

image.png

NumPy

NumPy(Numerical Python)是一个用于科学计算和数值运算的 Python 库。它是 Python 数据科学生态系统的核心组件之一,提供了高性能的多维数组(ndarray)对象和广泛的数学函数,以及用于操作数组的工具。

以下是 NumPy 的一些主要特点和功能:

  1. 多维数组:NumPy的核心是 ndarray 对象,它是一个多维数组,可以存储同类型的数据。NumPy的数组支持高效的数值计算,可以执行向量化运算,大大提高了运算速度。
  2. 广泛的数学函数:NumPy提供了大量的数学、逻辑、位运算等函数,涵盖了基本的算术运算、三角函数、指数函数、统计函数等。
  3. 广播(Broadcasting):NumPy的广播功能允许不同形状的数组之间进行算术运算,使得在对不同大小数组进行计算时不需要显式地编写循环。
  4. 数组操作:NumPy提供了丰富的数组操作函数,包括数组的切片、重塑、连接、拆分等。
  5. 整合C/C++/Fortran代码:NumPy具有与C、C++和Fortran代码进行整合的能力,这使得NumPy在性能和灵活性方面都非常强大。
  6. 科学计算支持:NumPy在科学计算领域得到广泛应用,包括线性代数、傅立叶变换、信号处理、图像处理等。

NumPy是Python数据科学生态系统的基础库之一,它与其他Python库(如SciPy、Pandas、Matplotlib等)结合使用,构成了一个强大的数据科学和数值计算平台。由于NumPy提供了高性能的数组操作和数学函数,因此在处理大规模数据、进行数值计算和科学研究时,它是必不可少的工具之一。

Pandas

Pandas 是一个开源的 Python 数据分析库,它提供了丰富而灵活的数据结构和函数,用于处理和分析结构化数据。Pandas是Python数据科学生态系统中非常重要的一个组成部分,广泛应用于数据清洗、数据预处理、数据分析和数据可视化等领域。

Pandas 的主要功能和特点包括:

  1. 数据结构:Pandas提供了两种主要的数据结构:Series和DataFrame。Series是一维标签数组,类似于带有标签索引的数组;DataFrame是二维表格型数据结构,类似于数据库中的表格。这些数据结构可以容纳多种数据类型,包括数值、字符串、布尔值等,使得Pandas在处理复杂的数据集时非常灵活。
  2. 数据清洗和处理:Pandas提供了许多函数和方法,用于处理缺失值、重复数据、数据转换、数据过滤、排序等数据清洗和处理任务。这些功能使得数据的准备变得更加简单和高效。
  3. 数据分析:Pandas支持各种数据操作,如基本的统计分析、聚合、数据透视表、合并、拼接等。这些功能让用户可以方便地对数据进行分析和汇总。
  4. 时间序列处理:Pandas对时间序列数据有着特别强大的支持,提供了时间索引、滚动窗口、时间偏移等功能,用于处理时间序列数据和时间频率转换。
  5. 数据可视化:Pandas结合了Matplotlib等可视化库,可以方便地进行数据可视化。DataFrame和Series对象的plot()方法能够快速生成图表,使得数据分析结果的可视化变得简单。
  6. 数据导入和导出:Pandas支持多种数据格式,包括CSV、Excel、SQL数据库、JSON等,可以方便地将数据导入Pandas进行处理,也可以将处理后的数据导出为其他格式。

总的来说,Pandas是一个功能强大、灵活易用的数据分析库,它的出现使得Python在数据科学和数据分析领域变得更加强大。Pandas为数据科学家、数据分析师和研究者提供了一个强大的工具,用于处理和分析结构化数据,帮助用户更高效地进行数据分析和洞察。

SciPy

SciPy(Scientific Python)是一个开源的Python科学计算库,它建立在NumPy的基础之上,并为NumPy提供了更多的功能和扩展。SciPy旨在提供广泛的数学、科学和工程计算功能,涵盖了信号处理、优化、统计、线性代数、数值积分、插值、图像处理等领域。

SciPy是Python数据科学生态系统中的重要组成部分,它和NumPy、Pandas、Matplotlib等库一起构成了一个强大的数据科学和数值计算平台。

以下是SciPy的一些主要功能和模块:

  1. 线性代数:SciPy提供了线性代数运算的功能,包括求解线性方程组、矩阵分解、特征值和特征向量计算等。
  2. 优化:SciPy包含了许多优化算法,用于寻找函数的最小值或最大值,例如最优化、非线性优化、全局优化等。
  3. 插值:SciPy提供了一系列插值函数,用于在给定数据点上进行插值计算,如样条插值、拉格朗日插值等。
  4. 统计:SciPy中包含了许多统计函数和分布,用于概率分布、假设检验、频率统计等。
  5. 信号处理:SciPy提供了信号处理的功能,包括滤波、傅立叶变换、滤波器设计等。
  6. 数值积分:SciPy提供了数值积分的函数,用于数值求解定积分和常微分方程组等。
  7. 图像处理:SciPy中的scipy.ndimage模块提供了图像处理的功能,包括图像滤波、形态学操作、图像变换等。
  8. 稀疏矩阵:SciPy支持处理稀疏矩阵,提供了稀疏矩阵存储和运算的功能。

总体而言,SciPy是一个功能强大且完善的科学计算库,它为Python用户提供了广泛的数学、科学和工程计算功能。SciPy的出现使得Python在科学计算领域具备了更强大的竞争力,为数据科学家、工程师和研究人员提供了一个全面的工具箱,用于解决各种数值计算和科学计算问题。