300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 北京理工大学-嵩天python语言程序设计-9-Python计算生态概览

北京理工大学-嵩天python语言程序设计-9-Python计算生态概览

时间:2022-03-14 03:07:52

相关推荐

北京理工大学-嵩天python语言程序设计-9-Python计算生态概览

第九章 Python计算生态概览

9.1从数据处理到人工智能

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

9.3从web分析到网络空间

9.4从人机交互到艺术设计

9.5实例16:玫瑰花绘制

方法论

-概览Python计算生态,看见更大的世界

实践能力

-初步编写带有计算生态的复杂程序

9.1从数据处理到人工智能

9.1.1 Python库之数据处理9.1.2 Python库之数据可视化9.1.3 Python库之文本处理9.1.4 Python库之机器学习

数据表示->数据清洗->数据统计->数据可视化->数据挖掘->人工智能

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

9.1.1 Python库之数据处理

Numpy:表达N维数组的最基础库

特点

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

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

特点

Pandas数据提供2个核心数据结构

Series=索引+一维数据DataFrame=行列索引+二维数据

也提供了一个数学、科学和工程计算功能库

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

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

9.1.2 Python库之数据可视化

Matplotlib:高质量的二维数据可视化功能库

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

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

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

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

提供了一批简单易用的3D科学数据可视化展示效果

目前版本时Mayavi2、三维可视化最主要的第三方库

支持Numpy、TVTK、Traits、Envisage

9.1.3 Python库之文本处理

PyPDF2:用来处理PDF文件的工具集

http://mstamy2.github.io/PyPDF2

提供了一批处理PDF文件的计算共功能

支持获取信息、分割/整合文件、加密解密等

完全Python语言实现,不需要额外依赖,功能稳定

from PyPDF2 import PdfFileReader, PdfFileMergermerger = PdfFileMerger()input1 = open("document1.pdf", "rb")input2 = open("document2.pdf", "rb")merger.append(fileobj = input1, pages = (0,3))merger.merge(position = 2, fileobj = input2, pages = (0,1))output = open("document-output.pdf", "wb")merger.write(output)

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

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

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

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

from docx import Documentdocument = Document()document.add_heading('Document Title', 0)p = document.add_paragraph('A plain paragraph having some ')document.add_page_break()document.save('demo.docx')

9.1.4 Python库之机器学习

Scikit-learn:机器学习方法工具集

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

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

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

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

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

单元小结

Numpy、Pandas、SciPy

Matplotlib、Seaborn、Mayavi

PyPDF2、NLTK、python-docx

Scikit-learn、TensorFlow、MXNet

小花絮

小议"函数式编程"

"函数式编程"用函数将程序组织起来,貌似很流行,为何不早学呢?

第一,函数式编程主要源于C语言,Python不是C,这说法不流行第二,不要纠结于名字,关键在于按照"控制流"编程的过程式编程思维第三,Python编程中函数不必须,因此更灵活,更探寻本质。如果您学过其他编程语言,不要被束缚,从本质上看待Python才更有趣!

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

9.2.1霍兰德人格分析雷达图,问题分析

雷达图

霍兰德人格分析

霍兰德认为:人格兴趣与职业之间应有一种内在的对应关系人格分类:研究型、艺术型、社会型、企业型、传统型、现实性职业:工程师、实验员、艺术家、推销员、记事员、社会工作者

霍兰德人格分析雷达图

需求:雷达图方式验证霍兰德人格分析输入:各职业人群结合兴趣的调研数据输出:雷达图通用雷达图绘制:matplotlib库 - 专业的多维数据表示: numpy库 - 输出:雷达图

import numpy as nyimport matplotlib.pyplot as pltimport matplotlibmatplotlib.rcParams['font.family']='SimHei'radar_labels=ny.array(['研究型(I)','艺术型(A)','社会型(S)','企业型(E)','常规型(C)','现实型(R)'])data=ny.array([[0.40, 0.32, 0.35, 0.30, 0.30, 0.88],[0.85, 0.35, 0.30, 0.40, 0.40, 0.30],[0.43, 0.89, 0.30, 0.28, 0.22, 0.30],[0.30, 0.25, 0.48, 0.85, 0.45, 0.40],[0.20, 0.38, 0.87, 0.45, 0.32, 0.28],[0.34, 0.31, 0.38, 0.40, 0.92, 0.28]])data_labels = ('艺术家', '实验员', '工程师', '推销员', '社会工作者', '记事员')angles = np.linspace(0, 2 * np.pi, 6, endpoint=False)data = np.concatenate((data, [data[0]]))angles = np.concatenate((angles, [angles[0]]))radar_labels = np.concatenate((radar_labels, [radar_labels[0]]))fig = plt.figure(facecolor="white")plt.subplot(111, polar=True)plt.plot(angles, data, 'o-', linewidth=1, alpha=0.2)plt.fill(angles, data, alpha=0.25)plt.thetagrids(angles * 180 / np.pi, radar_labels)plt.figtext(0.52, 0.95, '霍兰德人格分析', ha='center', size=20)legend = plt.legend(data_labels, loc=(0.94, 0.80), labelspacing=0.1)plt.setp(legend.get_texts(), fontsize='large')plt.grid(True)plt.savefig('holland_radar.jpg')plt.show()

9.2.3 "霍兰德人格分析雷达图"举一反三

目标 + 沉浸 + 熟练

编程的目标感:寻找感兴趣的目标,寻(wa)觅(jue)之编程的沉浸感:寻找可实现的方法,思(zuo)考(mo)之编程的熟练度:练习、练习、再练习,熟练之

9.3 从Web解析到网络空间

9.3.1 Python库之网络爬虫

9.3.2 Python库之Web信息提取

9.3.3 Python库之Web网站开发

9.3.4 Python库之网络应用开发

9.3.1 Python库之网络爬虫

Requests: 最友好的网络爬虫功能库

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

http://www.python-/

Scrapy: 优秀的网络爬虫框架

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

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

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

9.3.2 Python库之Web信息提取

Beautiful Soup: HTML和XML的解析库

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

/software/BeautifulSoup/bs4

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

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

/3.6/library/re.html

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

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

/grangier/python-goose

我的python 时python3

因此下载的也是goose3

在Anaconda命令行安装Goose3pip install goose3 然后在python编译器使用from goose3 import Goosefrom goose3.text import StopWordsChinesefrom goose3 import Goosefrom goose3.text import StopWordsChineseurl = 'http://www.elmundo.es/elmundo//10/28/espana/1351388909.html'g = Goose({'use_meta_language': False, 'target_language':'es'})article = g.extract(url=url)article.cleaned_text

9.3.3 Python库之Web网站开发

Django: 最流行的Web应用框架

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

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

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

/

from wsgiref.simple_server import make_serverfrom pyramid.config import Configuratorfrom pyramid.response import Responsedef hello_world(request):return Response('Hello World!')if __name__ == '__main__':with Configurator() as config:config.add_route('hello', '/')config.add_view(hello_world, route_name='hello')app = config.make_wsgi_app()server = make_server('0.0.0.0', 6543, app)server.serve_forever()

Flask: Web应用开发微框架

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

from flask import Flaskapp=Flask(__name__)@app.route('/')def hello_word():return"Hello,world!"

9.3.4 Python库之网络应用开发

WeRoBot: 微信公众号开发框架

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

/offu/WeRoBot

aip: 百度AI开放平台接口

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

/Baidu-AIP/python-sdk

MyQR: 二维码生成第三方库

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

/sylnsfar/qrcode

单元小结

从Web解析到网络空间

Requests、Scrapy、pyspiderBeautiful Soup、Re、Python-GooseDjango、Pyramid、FlaskWeRobot、aip、MyQR

9.4 从人机交互到艺术设计

9.4.1 Python库之图形用户界面

9.4.2 Python库之游戏开发

9.4.3 Python库之虚拟现实

9.4.4 Python库之图形艺术

9.4.1 Python库之图形用户界面

PyQt5: Qt开发框架的Python接口

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

/software/pyqt

wxPython: 跨平台GUI开发框架

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

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

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

https://pygobject.readthedocs.io

9.4.2 Python库之游戏开发

PyGame: 简单的游戏开发功能库

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

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

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

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

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

/

9.4.3 Python库之虚拟现实

VR Zerot: 在树莓派上开发VR应用的Python库

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

/WayneKeenan/python-vrzero

pyovr: Oculus Rift的Python开发接口

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

/cmbruns/pyovr

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

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

/vizard-virtual-reality-software

9.4.4 Python库之图形艺术

Quads: 迭代的艺术

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

/fogleman/Quads

ascii_art: ASCII艺术库

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

/jontonsoup4/ascii_art

turtle: 海龟绘图体系

单元小结

从人机交互到艺术设计

PyQt5、wxPython、PyGObjectPyGame、Panda3D、cocos2dVR Zero、pyovr、VizardQuads、ascii_art、turtle

小花絮

https://python123.io

这是一段不超过20行的小代码

虽短却小有创意,请实践之

这是别人的精彩,你的呢?

9.5 实例16: 玫瑰花绘制

9.5.1 "玫瑰花绘制"问题分析

需求:用Python绘制一朵玫瑰花,献给所思所念

输入:你的想象力!

输出:玫瑰花

绘制机理:turtle基本图形绘制

绘制思想:因人而异

思想有多大、世界就有多大

9.5.2 "玫瑰花绘制"实例展示

import turtle# 设置初始位置turtle.penup() # 提起画笔turtle.left(90) # 逆时针旋转九十度turtle.fd(200) # 向前移动一段距离 fd=forwardturtle.pendown() # 放下画笔移动画笔开始绘制turtle.right(90) # 顺时针旋转九十度# 花蕊turtle.fillcolor("red") # 填充颜色turtle.begin_fill() # 开始填充turtle.circle(10, 180) # 画一圆,10是半径,180是弧度turtle.circle(25, 110)turtle.left(50)turtle.circle(60, 45)turtle.circle(20, 170)turtle.right(24)turtle.fd(30)turtle.left(10)turtle.circle(30, 110)turtle.fd(20)turtle.left(40)turtle.circle(90, 70)turtle.circle(30, 150)turtle.right(30)turtle.fd(15)turtle.circle(80, 90)turtle.left(15)turtle.fd(45)turtle.right(165)turtle.fd(20)turtle.left(155)turtle.circle(150, 80)turtle.left(50)turtle.circle(150, 90)turtle.end_fill() # 结束填充# 花瓣1turtle.left(150)turtle.circle(-90, 70)turtle.left(20)turtle.circle(75, 105)turtle.setheading(60) # urtle.setheading(angle) 或 turtle.seth(angle):改变行进方向 angle:行进方向的绝对角度,可以为负值turtle.circle(80, 98)turtle.circle(-90, 40)# 花瓣2turtle.left(180)turtle.circle(90, 40)turtle.circle(-80, 98)turtle.setheading(-83)# 叶子1turtle.fd(30)turtle.left(90)turtle.fd(25)turtle.left(45)turtle.fillcolor("green")turtle.begin_fill()turtle.circle(-80, 90)turtle.right(90)turtle.circle(-80, 90)turtle.end_fill()turtle.right(135)turtle.fd(60)turtle.left(180)turtle.fd(85)turtle.left(90)turtle.fd(80)# 叶子2turtle.right(90)turtle.right(45)turtle.fillcolor("green")turtle.begin_fill()turtle.circle(80, 90)turtle.left(90)turtle.circle(80, 90)turtle.end_fill()turtle.left(135)turtle.fd(60)turtle.left(180)turtle.fd(60)turtle.right(90)turtle.circle(200, 60)# 设置成画完不会自动退出turtle.done()

9.5.3 "玫瑰花绘制"举一反三

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

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

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

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

好吧,算是跟着嵩老师基本走了一遍Python基础,将得非常细致,还能跟着上手操作一些,非常良心的课程,并且不啰嗦,全是干货,继续再接再厉吧,接触一些其他的操作,包括图形展示和爬虫,巩固基础。非常赞!!!!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。