WHY PYTHON!


目录


历史—-计算机的发展阶段

  • 1946年 计算机诞生
    1946-1981 :计算机系统结构时代,不同类型计算机&系统结构,解决计算能力问题
  • 1981年 PC诞生
    1981-2008 :网络&视窗时代,互联网&视窗操作系统,解决人与计算机&计算机间交互问题
  • 2008年 Android操作系统诞生
    2008-2016 :复杂信息系统时代,解决数据问题
  • 2016年 计算机打败世界围棋冠军
    2017-未来 :人工智能时代,解决人类问题

未来->大量计算需求


编程语言概览

世界上存在着超过600多种编程语言,代表性语言如下:

语言关注点本质解决问题
C语言指针、内存、数据类型理解计算机系统结构性能、写操作系统
JAVA面向对象、跨平台、运行时理解主客体关系跨平台和程序类交互问题
C++对象、多态、继承理解主客体关系大规模程序、大规模图像处理
VB对象、控件理解人机交互逻辑桌面应用
pyhton编程逻辑、第三方库理解问题求解各类问题

未来计算环境:计算机性能不再是解决一般问题的瓶颈,移动互广泛普及,大数据、云计算、物联网、信息安全、人工智能需求爆发,日益增长的计算需求,选择python!


python特点

通用、简洁、生态

  • 通用语言
  • 脚本语言
  • 开源
  • 跨平台
  • 多模型语言

  • 语法简洁:代码量是C的10%,强制可读性,较少的底层语法元素,支持多种编程方式,支持中文字符;

  • 生态高产:拥有快速增长的计算生态,超过13W的第三方库,避免重复造轮子,代码开方共享,且可跨操作系统平台。

python是最高产的程序设计语言!
机器语言:二进制文件 代码直接执行

汇编语言:有助记符,需要汇编器

高级语言:接近自然语言,需要编译器

超级语言:python,粘性整合已有程序,具备庞大的计算生态


what can we do with python?

使用python我可以做什么?什么都可以!从数据处理到人工智能、从web解析到网络空间、从人机交互到艺术设计,三大方向,都有好用的第三方库支持!


1.从数据处理到人工智能

从数据处理到人工智能大致分为以下步骤:

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

以上六步骤涉及的主要技术点有:数据分析、数据可视化、文本处理、机器学习
python针对各项技术都有优秀的第三方库可直接使用,如下:

  • 数据分析

    Numpy:表达N维数组的最基础库。
    使用C语言实现,计算速度快,是python数据分析及科学计算的基础库,支撑Pandas等库;直接提供矩阵运算、广播函数、线性代数等功能。

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

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

  • 数据可视化

    Matplotlib:高质量的二维数据可视化功能库
    提供了超过100种数据可视化展示效果;通过matplotlib.pyplot子库调用各可视化效果;是python最主要的数据可视化功能库,基于Numpy开发。

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

    Mayavi:三维科学数据可视化功能库
    提供了一批简单易用的3D科学计算数据可视化展示效果;目前(Mayavi2)是三维可视化最主要的第三方库;支持Numpy、TVTK、Traits、Envisage等第三方库。

  • 文本处理

    PyPDF2:用来处理PDF文件的工具集
    提供了一批处理PDF文件的计算功能;支持获取信息、分割、整合文件、加密接口等;完全Python语言实现,不需要依赖其他第三方库,功能稳定。

    NLTK:自然语言文本处理第三方库
    提高了一批简单易用的自然语言文本处理功能;支持语言文本分类、标记、语法句法、语义分析等;是最优秀的python自然语言处理库。

    Python-docx:创建或更新MicrosoftWord文件的第三方库
    提供创建或更新.doc .docx等文件的计算功能;增加并配置段落、图片、表格、文字等,功能全面。

  • 机器学习
    Scikit-learn:机器学习方法工具集
    提供一批统一化的机器学习方法功能接口;提供聚类、分类、回归、强化学习等计算功能;是机器学习最基本且最优秀的python第三方库。

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

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

小结:
从数据处理到人工智能可能用到的第三方库如下,要想实现本路线功能,每一类至少需熟练掌握一个第三方库:

  • 数据分析:Numpy、Pandas、SciPy
  • 数据可视化:Matplotlib、Seaborn、Mayavi
  • 文本处理:PyPDF2、NLTK、python-doc
  • 机器学习:Scikit-learn、TensorFlow、MXNet

2.从WEB网页到网络空间

  • 网络爬虫

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

    Scrapy:python数据分析高层次应用库
    提供了构建网络爬虫系统的框架功能,功能半成品;支持批量和定时网页爬取、提供数据处理流程等;是python最主要且最专业的网络爬虫框架。

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

  • web信息提取

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

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

    Python-Goose:提取文章类型web页面的功能库
    提供了对web页面中文章信息、视屏等元数据的提取功能;针对特定类型web页面,应用覆盖面较广;是python最主要的web信息

  • web网站开发

    Django:最流行的web应用框架
    提供了构建web系统的基本应用框架;MTV模式:模型(model)+模板(template)+视图(views);是python最主要的web应用框架,略微复杂的应用框架。

    Pyramid:规模适中的web应用框架
    提供了简单方便构建web系统的应用框架;不大不小,规模适中,适合快速构建并适度扩展类应用;是python产品级web应用框架,起步简单扩展性好。

    Flask:web应用开发微框架
    提供了最简单构建web系统的应用框架;特点是简单、规模小、快速;体积:Django > Pyramid > Flask.

    WeRobot:微信公众号开发框架
    提供了解析微信服务器消息及反馈消息的功能;建立微信机器人的重要技术手段。

  • 网络应用开发

    aip:百度AI开放平台接口
    提供了访问百度AI服务的python功能接口;语音、人脸、OCR、NLP、知识图谱、图像搜索等领域;python百度AI应用的最主要方式。

    MyQR:二维码生成第三方库
    提供了生成二维码的系列功能;基本二维码、艺术二维码和动态二维码。

小结:

  • 网络爬虫:Requests、Scrapy、pyspider;
  • web信息提取:Beautiful Soup、Re、Python-Goose;
  • web网站开发:Django、Pyramid、Flask;
  • 网络应用开发:WeRobot、aip、MyQR;

3.从人机交互到艺术设计

  • 图形用户界面

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

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

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

  • 游戏开发

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

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

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

  • 虚拟现实

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

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

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

  • 图形艺术

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

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

    turtle:海龟绘图体系
    简单!

小结:

  • 图像用户界面:PyQt5、wxPython、PyGObject
  • 游戏开发:PyGame、Panda3D、cocos2d
  • 虚拟现实:VR Zer、pyovr、Vizard
  • 图形艺术:Quads、ascii_art、turtle

更多第三方库,去awesome-python.com中去查。

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐