翻译自 《Python学习手册(第5版)》

Systems Programming

Python 对操作系统服务的内置接口使其非常适合编写可移植、可维护的系统管理工具和实用程序 utilities (有时称为 shell 工具)。Python 程序可以搜索文件和目录树、启动其他程序、使用进程和线程进行并行处理等等。

Python 的标准库带有 POSIX 绑定和对所有常用 OS 工具的支持: 环境变量、文件、套接字、管道、进程、多线程、正则表达式模式匹配、命令行参数、标准流接口、shell 命令发射器、文件名扩展、zip 文件实用程序、XML 和 JSON 分析器、CSV 文件处理程序等。此外, Python 的大部分系统接口设计为可移植; 例如, 复制目录树的脚本通常在所有主要 Python 平台上运行不变。EVE Online 采用 Stackless Python 的实现并提供了针对多处理需求的高级解决方案。

GUIs (用户图形接口)

Python 的简洁和快速周转也使它成为桌面上图形用户界面编程的好匹配。python 附带了一个标准面向对象的接口, 该 API 称为 tkinter (tkinter 2.X), 它允许 Python 程序实现具有本地外观和感觉的便携式 gui。Python/tkinter gui 在 Windows、X Windows ( Unix 和 Linux ) 和 Mac os (经典版和 OS x) 上运行不变。一个免费的扩展包, PMW, 添加高级小部件到 tkinter 工具包。此外, 基于 c++ 库的 wxPython GUI API 提供了一种在 Python 中构建便携式 gui 的替代工具包。

更高级别的工具包 (如达博) 建立在基本 api (如 wxPython 和 tkinter) 之上。使用适当的库, 您还可以在 Python 中的其他工具包中使用 GUI 支持, 例如 Qt 与 PyQt、具有 PyGTK 的 GTK、带有 PyWin32 的 MFC、. NET 和 IronPython, 以及使用 Jython (2 章中描述的 Java 版本的 Python) 或 JPype 进行摆动。对于在 web 浏览器中运行或具有简单接口要求的应用程序, Jython 和 Python web 框架和服务器端 CGI 脚本提供其他用户界面选项。

Internet Scripting

python 附带了标准的 Internet 模块, 允许 python 程序在客户端和服务器模式下执行各种网络任务。脚本可以通过套接字进行通信;提取发送到服务器端 CGI 脚本的表单信息;通过 FTP 传输文件;分析和生成 XML 和 JSON 文档;发送、接收、撰写和分析邮件; 按 URL 获取网页;解析获取的网页的 HTML;通过 XML (RPC、SOAP 和 Telnet) 进行通信等等。Python 的库使这些任务非常简单。

不仅如此, Web 上还提供了大量的第三方工具, 用于 Python 中的 Internet 编程。例如, HTMLGen 系统生成基于 Python 类的描述的 HTML 文件, mod_python 包在 Apache web 服务器中高效运行 Python, 并支持服务器端模板化及其 Python 服务器页面, 以及 Jython 系统提供无缝 Python/Java 集成, 并支持在客户端上运行的服务器端小程序的编码。

此外, 对于 python, 如 Django, TurboGears, web2py, Pylons, Zope 和 WebWare, 完整的 web 开发框架包支持使用 python 快速构建全功能和生产质量的网站。其中许多功能包括对象关系映射器、模型/视图/控制器体系结构、服务器端脚本和模板以及 AJAX 支持, 以提供完整的企业级 web 开发解决方案。

最近, Python 已扩展到丰富的 Internet 应用程序 (RIAs), 其中包括 IronPython 中的 Silverlight 和 pyjs (也称为睡衣 ( pyjamas)) 及其 Python 到 JavaScript 编译器、AJAX 框架和小部件集。Python 还已迁移到云计算、应用引擎以及前面的数据库部分中描述的其他内容。在 Web 潜在客户的位置, Python 很快就会跟随。

Component Integration (组件集成)

Python 在 c 和 c++ 系统中扩展和嵌入的能力使其成为一种灵活的胶水语言, 用于编写其他系统和组件的行为脚本。例如, 将 C 库集成到 python 使 python 能够测试和启动库的组件, 并在产品中嵌入 Python, 无需重新编译整个产品 (或根本不发运其源代码) 即可对现场自定义进行编码。

诸如 SWIG 和 SIP 代码生成器之类的工具可以自动完成将编译的组件链接到 python 以便在脚本中使用所需的大部分工作, 而 Cython 系统允许程序员混合 python 和类似 C 的代码。更大的框架, 如 Python 在 Windows 上的 COM 支持、基于 Jython Java 的实现和 IronPython。基于 .NET 的实现提供了脚本组件的其他方法。例如, 在 Windows 上, Python 脚本可以使用框架来编写 Word 和 Excel 的脚本、访问 Silverlight 等。

Database Programming

对于传统的数据库需求, 对于所有常用的关系数据库系统 (Sybase、Oracle、Informix、ODBC、MySQL、PostgreSQL、SQLite 等) 都有 Python 接口。python 世界还定义了一个可移植数据库 API, 用于从 Python 脚本访问 SQL 数据库系统, 在各种基础数据库系统上看起来相同。例如, 由于供应商接口实现了便携式 API, 编写用于与免费 MySQL 系统一起工作的脚本在其他系统 (如 Oracle) 上的工作基本不变;您通常需要做的就是更换基础供应商界面。自2.5 以来, 进程内 SQLite 嵌入式 SQL 数据库引擎是 Python 本身的标准部分, 支持原型设计和基本程序存储需求。

在非 SQL 部分中, Python 的标准 pickle 模块提供了一个简单的对象持久化系统-它允许程序轻松地将整个 Python 对象保存和还原到文件和类似文件的对象。在 Web 上, 您还可以找到名为 ZODB 和 Durus 的第三方开源系统, 为 Python 脚本提供完整的面向对象的数据库系统;其他, 如 SQLObject 和 SQLAlchemy, 实现对象关系映射器 (ORMs), 将 Python 的类模型移植到关系表上;PyMongo 是 MongoDB 的一个接口, 它是一种高性能、非 SQL、开放源码的 JSON 样式文档数据库, 它将数据存储在结构非常类似于 python 自己的列表和字典中, 其文本可以使用 python 自己的标准库 json 模块进行分析和创建。

此外, 其他系统还提供了更专业的方法来存储数据, 包括在 Google App 引擎中使用数据存储, 通过 Python 类来建模和提供广泛的可扩展性, 以及其他新兴云存储选项, 如 Azure、PiCloud、OpenStack 和 Stackato。

Rapid Prototyping (快速原型)

对于 python 程序, 用 python 和 C 编写的组件看起来是一样的。因此, 最初可以在 Python 中原型系统, 然后将所选组件移动到编译语言 (如 c 或 c++) 以进行传递。与某些原型工具不同, Python 在原型凝固后不需要完全重写。不需要 C + + 等语言效率的系统部分可以保持在 Python 中编码, 便于维护和使用。

Numeric and Scientific Programming

python 在数字编程中也被大量使用, 这是一种传统上不被认为是脚本语言范围的领域, 但已经发展成为 python 最引人注目的用例之一。这里突出的是, 前面提到的 Python 的 NumPy 高性能数字编程扩展包括诸如数组对象的高级工具、标准数学库的接口等等。通过将 python 与以编译语言编码的数字例程集成为速度, NumPy 将 python 转换为复杂而易于使用的数字编程工具, 通常可以替换传统编译语言 (如 FORTRAN 或 C++) 编写的现有代码。

Python 支持动画、3D 可视化、并行处理等其他数字工具。例如, 流行的 SciPy 和 ScientificPython 扩展提供了更多的科学编程工具库, 并将 NumPy 作为核心组件使用。Python 的 PyPy 实现也在数字领域中得到了牵引, 部分原因是此域中常见的排序的大量算法代码可以在 PyPy 中快速运行, 通常速度快10X 到 100X。

Gaming, Images, Data Mining, Robots, Excel 等

Python 通常应用在更多的域中, 而不是可以在这里覆盖。例如, 您将找到允许您使用 Python 执行以下操作的工具:

  • 游戏编程和多媒体:pygame, cgkit, pyglet, PySoy, Panda3D, ...
  • 通过 PySerial 扩展, 在 Windows、Linux 和更多端口上进行串口通信
  • 使用 PyRo 工具包进行机器人控制编程
  • 使用 NLTK 包进行自然语言分析
  • 树莓派 (Raspberry Pi) 和 Arduino 板上的仪器仪表工具
  • 移动 (Mobile) 计算: Python 端口到谷歌 Android 和苹果 iOS 平台
  • Excel 电子表格功能和宏编程: PyXLL 或 DataNitro 加载项
  • 媒体文件内容和元数据标签处理 (Media file content and metadata tag processing): PyMedia, ID3, PIL/Pillow 等
  • 人工智能: PyBrain 神经网络库和 Milk 机器学习工具包
  • 专家系统: PyCLIPS, Pyke, Pyrolog, pyDatalog
  • 网络监视 (Network monitoring): zenoss, 使用 Python 进行编写和自定义
  • Python 脚本设计和建模: PythonCAD、PythonOCC、FreeCAD 和其他
  • 文件处理和生成 (Document processing and generation): ReportLab, Sphinx, Cheetah, PyPDF 等等
  • 使用 Mayavi、matplotlib、VTK、VPython 等进行数据可视化
  • xml 分析: xml 库包、xmlrpclib 模块和第三方扩展
  • JSON, CSV 文件处理: json and csv modules
  • 数据挖掘: 使用 Orange 框架、Pattern bundle、Scrapy 和自定义代码

其他

Scikit-learn(重点推荐)

Scikit-learn 是基于 Scipy 为机器学习建造的的一个 Python 模块,他的特色就是多样化的分类,回归和聚类的算法包括支持向量机,逻辑回归,朴素贝叶斯分类器,随机森林,Gradient Boosting,聚类算法和 DBSCAN。而且也设计出了 Python numerical 和 scientific libraries Numpy and Scipy

Keras(深度学习)

Keras 是基于 Theano, Tensorflow, CNTK 的一个深度学习框架,它的设计参考了 Torch,用 Python 语言编写,是一个高度模块化的神经网络库,支持 GPU 和 CPU。

Lasagne(深度学习)

不只是一个美味的意大利菜,也是一个和 Keras 有着相似功能的深度学习库,但其在设计上与它们有些不同。

Pylearn2

Pylearn 是一个让机器学习研究简单化的基于 Theano 的库程序。它把深度学习和人工智能研究许多常用的模型以及训练算法封装成一个单一的实验包,如随机梯度下降。

NuPIC

NuPIC 是一个以 HTM 学习算法为工具的机器智能平台。HTM 是皮层的精确计算方法。HTM 的核心是基于时间的持续学习算法和储存和撤销的时空模式。NuPIC 适合于各种各样的问题,尤其是检测异常和预测的流数据来源。

Nilearn

Nilearn 是一个能够快速统计学习神经影像数据的 Python 模块。它利用 Python 语言中的 scikit-learn 工具箱和一些进行预测建模,分类,解码,连通性分析的应用程序来进行多元的统计。

PyBrain

Pybrain 是基于 Python 语言强化学习,人工智能,神经网络库的简称。 它的目标是提供灵活、容易使用并且强大的机器学习算法和进行各种各样的预定义的环境中测试来比较你的算法。

Pattern

Pattern 是 Python 语言下的一个网络挖掘模块。它为数据挖掘,自然语言处理,网络分析和机器学习提供工具。它支持向量空间模型、聚类、支持向量机和感知机并且用KNN分类法进行分类。

Fuel

Fuel 为你的机器学习模型提供数据。他有一个共享如MNIST, CIFAR-10 (图片数据集), Google's One Billion Words (文字)这类数据集的接口。你使用他来通过很多种的方式来替代自己的数据。

Bob

Bob 是一个免费的信号处理和机器学习的工具。它的工具箱是用 Python 和 C++ 语言共同编写的,它的设计目的是变得更加高效并且减少开发时间,它是由处理图像工具,音频和视频处理、机器学习和模式识别的大量软件包构成的。

Skdata

Skdata 是机器学习和统计的数据集的库程序。这个模块对于玩具问题,流行的计算机视觉和自然语言的数据集提供标准的Python语言的使用。

MILK

MILK 是Python语言下的机器学习工具包。它主要是在很多可得到的分类比如SVMS,K-NN,随机森林,决策树中使用监督分类法。 它还执行特征选择。 这些分类器在许多方面相结合,可以形成不同的例如无监督学习、密切关系金传播和由MILK支持的K-means聚类等分类系统。

IEPY

IEPY 是一个专注于关系抽取的开源性信息抽取工具。它主要针对的是需要对大型数据集进行信息提取的用户和想要尝试新的算法的科学家。

Quepy

Quepy 是通过改变自然语言问题从而在数据库查询语言中进行查询的一个 Python 框架。他可以简单的被定义为在自然语言和数据库查询中不同类型的问题。所以,你不用编码就可以建立你自己的一个用自然语言进入你的数据库的系统。
现在 Quepy 提供对于 Sparql 和 MQL 查询语言的支持。并且计划将它延伸到其他的数据库查询语言。

Hebel

Hebel 是在 Python 语言中对于神经网络的深度学习的一个库程序,它使用的是通过 PyCUDA 来进行 GPU 和 CUDA 的加速。它是最重要的神经网络模型的类型的工具而且能提供一些不同的活动函数的激活功能,例如动力,涅斯捷罗夫动力,信号丢失和停止法。

mlxtend

mlxtend 它是一个由有用的工具和日常数据科学任务的扩展组成的一个库程序。

nolearn

nolearn 容纳了大量能对你完成机器学习任务有帮助的实用程序模块。其中大量的模块和 scikit-learn 一起工作,其它的通常更有用。

Ramp

Ramp 是一个在 Python 语言下制定机器学习中加快原型设计的解决方案的库程序。他是一个轻型的 pandas-based 机器学习中可插入的框架,它现存的Python语言下的机器学习和统计工具(比如scikit-learn,rpy2 等)Ramp 提供了一个简单的声明性语法探索功能从而能够快速有效地实施算法和转换。

Feature Forge

Feature Forge一系列工具通过与 scikit-learn 兼容的 API,来创建和测试机器学习功能。

这个库程序提供了一组工具,它会让你在许多机器学习程序使用中很受用。当你使用 scikit-learn 这个工具时,你会感觉到受到了很大的帮助。(虽然这只能在你有不同的算法时起作用。)

REP

REP 是以一种和谐、可再生的方式为指挥数据移动驱动所提供的一种环境。

它有一个统一的分类器包装来提供各种各样的操作,例如 TMVA, Sklearn, XGBoost, uBoost等等。并且它可以在一个群体以平行的方式训练分类器。同时它也提供了一个交互式的情节。

Python 学习机器样品

machine-learning-sample 用亚马逊的机器学习建造的简单软件收集。

Python-ELM

Python-ELM 这是一个在 Python 语言下基于 scikit-learn 的极端学习机器的实现。

gensim

主题模型 python实现

  • Scalable statistical semantics
  • Analyze plain-text documents for semantic structure
  • Retrieve semantically similar document

使用 Python 可以做什么?的更多相关文章

  1. Python来做应用题及思路

    Python来做应用题及思路 最近找工作头疼没事就开始琢磨python解应用题应该可以,顺便还可以整理下思路当然下面的解法只是个人理解,也欢迎大佬们给意见或者指点更好的解决办法等于优化代码了嘛,也欢迎 ...

  2. 可以用 Python 编程语言做哪些神奇好玩的事情?

    作者:造数科技链接:https://www.zhihu.com/question/21395276/answer/219747752 使用Python绘图 我们先来看看,能画出哪样的图 更强大的是,每 ...

  3. Python能做些什么?

    前言 网上搜集到的一些python能做什么的资料,利用python能做很多事情,我们可以在多门课程中都使用Python作为我们的教学语言.比如,计算机网络.数据结构.人工智能.图像处理.软件分析与测试 ...

  4. Python 能做什么?

    Python 能做什么? Python具有简单.易学.免费.开源.可移植.可扩展.可嵌入.面向对象等优点,我所关注的是网络爬虫方面,2018即将到来,我准备步入python的世界. Hello,wor ...

  5. 学了Python可以做什么工作

    学了Python可以做什么工作 用 Python 写爬虫 据我所知很多初学 Python 的人都是使用它编写爬虫程序.小到抓取一个小黄图网站,大到一个互联网公司的商业应用.通过 Python 入门爬虫 ...

  6. 你都用python来做什么?

    首页发现话题   提问     你都用 Python 来做什么? 关注问题写回答     编程语言 Python 编程 Python 入门 Python 开发 你都用 Python 来做什么? 发现很 ...

  7. python + unittest 做单元测试之学习笔记

    单元测试在保证开发效率.可维护性和软件质量等方面有很重要的地位,所谓的单元测试,就是对一个类,一个模块或者一个函数进行正确性检测的一种测试方式. 这里主要是就应用 python + unitest 做 ...

  8. 一篇文章告你python能做什么,该不该学?好不好学?适不适合学?

    一.python好学吗?简单吗?容易学吗?没有编程的领取能学吗? 最近有很多小伙伴都在问我这些问题.在这里,我想说,python非常简单易学. 1,简单, Python 非常易于读写,开发者可以把更多 ...

  9. Python能做什么,自学Python效果怎么样?

    短时间掌握一门技能是现代社会的需求.生活节奏越来越快,现在不是大鱼吃小鱼,而是快鱼吃慢鱼的时代,人的时间比机器的时间更值钱.Python作为一种轻量级编程语言,语言简洁开发快,没那么多技巧,受到众多追 ...

  10. python是什么?python能做什么?

    人生苦短,我用python. python是什么? Python是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. python语言有以下特点: 易于学习.Python有相对较少的关键字 ...

随机推荐

  1. python3使用stmplib发送邮件

    代码如下: import smtplib from email.mime.text import MIMEText from email.header import Header from email ...

  2. How to Tell Science Stories with Maps

    Reported Features How to Tell Science Stories with Maps August 25, 2015   Greg Miller This map, part ...

  3. Java并发编程原理与实战四十四:final域的内存语义

    一.final域的重排序规则 对于final域,编译器和处理器要遵循两个重拍序规则: 1.在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用变量,这两个操作之间不能重排序 ...

  4. [转载]如何做到 jQuery-free?

    http://www.ruanyifeng.com/blog/2013/05/jquery-free.html jQuery是现在最流行的JavaScript工具库. 据统计,目前全世界57.3%的网 ...

  5. 莫队-小Z的袜子

    ----普通莫队 首先清楚概率怎么求假设我们要求从区间l到r中拿出一对袜子的概率sum[i]为第i种袜子在l到r中的数量 $$\frac{\sum_{i=l}^{r} {[sum[i] \times ...

  6. pandas 对时间与日期处理

    1.先把字符串时间转为时间类型: def func(x): y =pd.Timestamp(x) return y data.index = data.发博时间.apply(lambda x : fu ...

  7. C# XML序列化和反序列化

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.I ...

  8. Java中关于变量的几种情况

    Java中关于变量的几种情况 1.继承时变量的引用关系 class Animals { int age = 10; void enjoy() { System.out.println("An ...

  9. 20165230 《Java程序设计》实验四 Android程序设计实验报告

    20165230 <Java程序设计>实验四 Android程序设计实验报告 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:田坤烨 学号:20165230 成绩: 指导 ...

  10. Shell脚本中字符串判空:使用-z 字符串长度为0时,为真,-n字符串长度不为0,为真。这两个都不靠谱【转】

    最近发现使用  -z   和  -n  来判断字符串判空,或不空时,很不靠谱. 使用下面的方法最可靠: if [ "x${value}" == "x" ]    ...