Python一种简单易学的编程语言,另一个原因:大量开箱即用的第三方库,正是23万个由用户提供的软件包使得Python真正强大和流行。 (文末有惊喜)
Python有以下三个特点:
· 易用性和灵活性
· 全行业高接受度:Python无疑是业界最流行的数据科学语言
· 用于数据科学的Python库的数量优势
在本文中,我挑选了15个最有用的软件包,介绍它们的功能和特点。

1. Emoji
Emoji库非常有意思,但并非每个人都喜欢表情包,分析视觉媒体数据时,Emoji包非常有用。

以下是简单的代码示例:

2. PyTorch

什么是 PyTorch?
PyTorch 是最大的机器学习库,它允许开发人员以 GPU 的加速度执行 tensor 计算,创建动态计算图,并自动计算梯度。除此之外,PyTorch 还提供了丰富的 API 来解决与神经网络相关的应用程序问题。这个机器学习库是基于 Torch 的,它是一个用 C 语言实现的开源机器库,在 Lua 中进行了封装。
此机器学习库(python)于 2017 年推出,自其问世以来,该库越来越受欢迎,并吸引了越来越多的机器学习开发人员。
PyTorch 的特性
- 端到端 Hybrid
一种新的混合前端,提供了易于使用和具有灵活性的 Eager Mode,同时为了速度,无缝过渡到 graph mode,在 C++运行环境中非常实用。
- 分布式训练
利用本地支持异步执行集体操作和点对点通信(Python 和 C++),优化研究和生产中的性能。
- python 优先
PyTorch 不是一个将 python 绑定到 C++框架的工具。它的构建是为了深入集成到 python 中,以便可以与流行的库和包(如 Cython 和 Numba)一起使用。
- 库和工具
一个由研究人员和开发人员组成的活跃社区已经建立了一个丰富的工具和库的生态系统,用于扩展 PyTorch 并支持从计算机视觉到强化学习等领域的开发。
PyTorch 被用在哪里?
PyTorch 主要用于自然语言处理等领域的应用程序。
它主要是由 Facebook 的人工智能研究小组开发的,Uber 的概率编程软件「Pyro」就建立在它的基础之上。
3. Pillow
Pillow专门用于处理图像,您可以使用该库创建缩略图,在文件格式之间转换,旋转,应用滤镜,显示图像等等。如果您需要对许多图像执行批量操作,这是理想的选择。
为了快速了解它,看以下代码示例(加载并渲染):

4. Theano

什么是 Theano?
Theano 是一个用于计算多维数组的计算框架机器学习库。它的工作原理与 TensorFlow 相似,但不如 TensorFlow 有效,因为它无法适应生产环境。
此外,Theano 也可以在与 TensorFlow 类似的分布式或并行环境中使用。
Theano 的特点
- 与 Numpy 紧密集成——能够在无编译函数中使用完整的 Numpy 数组
- 高效地使用 GPU——比 CPU 执行数据密集型计算要快得多
- 有效的符号区分——Theano 为具有一个或多个输入的函数求导数
- 速度和稳定性优化——即使在 x 非常小的情况下,也能求出 log(1+x)的正确答案。这只是一个可以证明 Theano 稳定性的例子
- 动态 C 代码生成——比以前更快地评估表达式,从而大大提高效率
- 广泛的单元测试和自验证—检测和诊断模型中多种类型的歧义和错误
Theano 被用在哪里?
Theano 表达式的实际语法是符号化的,这对于习惯于常规软件开发的初学者来说是很不方便的。具体来说,表达式是以抽象的方式定义、编译的,然后直接用于计算。
它是专门为处理深度学习使用的大型神经网络算法所需的计算而设计的。它是同类库中最早的一个(在 2007 年就开始开发了),被认为是深度学习研究和开发的行业标准。
6. Requests
Requests建立在世界上*载下**量最大的Python库urllib3上,它令Web请求变得非常简单,功能强大且用途广泛。
以下代码示例说明requests的使用是多么简单。

Requests可以完成您能想到的所有高级工作,例如:
- 认证
- 使用cookie
- 执行POST,PUT,DELETE等
- 使用自定义证书
- 使用会话Session
- 使用代理
7. Simplejson
Python中的本地json模块有什么问题?没有!实际上,Python的json是simplejson。意思是,Python采用了simplejson的一个版本,并将其合并到每个发行版中。但是使用simplejson具有一些优点:
- 它适用于更多Python版本。
- 它比Python随附的版本更新频率更高。
- 它具有用C编写的(可选)部分,因此非常快速。
由于这些事实,您经常会在使用JSON的脚本中看到以下内容:

我将只使用默认的json,除非您特别需要:
- 速度
- 标准库中没有的东西
Simplejson比json快很多,因为它用C实现一些关键部分。除非您正在处理数百万个JSON文件,否则您不会对这种速度感兴趣。
8.Dash
Dash是比较新的软件包,它是用纯Python构建数据可视化app的理想选择,因此特别适合处理数据的任何人。Dash是Flask,Plotly.js和React.js的混合体。

9. Pandas

什么是 Pandas?
Pandas 是 Python 中的一个机器学习库,它提供高级的数据结构和各种各样的分析工具。这个库的一个重要特性是能够使用一个或两个命令转换复杂的数据操作。Pandas 有许多内置的分组、数据组合、过滤和时间序列功能的函数。
Pandas 的特征
Pandas 确保了整个数据处理的过程更加容易。对诸如重索引、迭代、排序、聚合、连接和可视化等操作的支持是 Pandas 的特色亮点之一。
Pandas 被用在哪里?
目前,Pandas 库的版本较少,其中包括数百个新功能、错误修复、增强和 API 更改。Pandas 的改进在于它能够对数据进行分组和排序,为使用的方法选择最适合的输出,并为执行自定义类型的操作提供支持。
当使用 Pandas 的时候,数据分析占了很大的比重。但是,当与其他库和工具一起使用时,Pandas 确保了高性能和良好的灵活性。
10. Python-dateutil
python-dateutil模块提供了对标准datetime模块的强大扩展。我的经验是,常规的Python日期时间功能在哪里结束,而python-dateutil就出现了。
您可以使用此库做很多很棒的事情。我将这些示例限制为我发现特别有用的示例:模糊分析日志文件中的日期,例如:

有关更多功能,请参见完整文档,例如:
- 计算相对增量(下个月,明年,下周一,该月的最后一周等)和两个给定日期对象之间的相对增量。
- 使用iCalendar规范的超集,根据重复规则计算日期。
- tzfile文件(/ etc / localtime,/ usr / share / zoneinfo等)的时区(tzinfo)实现,TZ环境字符串(所有已知格式),iCalendar格式文件,给定范围(在相对增量的帮助下),本地计算机 时区,固定偏移时区,UTC时区和基于Windows注册表的时区。
- 基于奥尔森数据库的内部最新世界时区信息。
- 使用Western,Orthodox或Julian算法计算任意一年的复活节周日日期。
11. 进度条:progress和tqdm
这里有点作弊,因为这是两个包,但忽略其中之一是不公平的。
您可以创建自己的进度条,这也许很有趣,但是使用progress或tqdm程序包更快,更不容易出错。
progress
借助这个软件包,您可以轻松创建进度条:

img

tqdm
tqdm的功能大致相同,但似乎是最新的。首先以gif动画形式进行一些演示:

12. IPython

我确定您知道Python的交互式外壳,这是运行Python的好方法。但是您也知道IPython shell吗?如果您经常使用交互式外壳程序,但您不了解IPython,则应该检查一下!
增强的IPython shell提供的一些功能包括:
- 全面的对象自省。
- 输入历史记录,跨会话持续存在。
- 在具有自动生成的引用的会话期间缓存输出结果。
- 制表符补全,默认情况下支持python变量和关键字,文件名和函数关键字的补全。
- “魔术”命令,用于控制环境并执行许多与IPython或操作系统相关的任务。
- 会话记录和重新加载。
- 对pdb调试器和Python分析器的集成访问。
- IPython的一个鲜为人知的功能:它的体系结构还允许并行和分布式计算。
IPython是Jupyter Notebook的核心,它是一个开放源代码Web应用程序,可让您创建和共享包含实时代码,方程式,可视化效果和叙述文本的文档。
13. Homeassistant

我喜欢家庭自动化。这对我来说是一种嗜好,但我至今仍对此深表歉意,因为它现在控制着我们房屋的大部分。我使用Home Assistant将房子中的所有系统*绑捆**在一起。尽管它确实是一个完整的应用程序,但是您也可以将其安装为Python PyPI软件包。
- 我们的大多数灯具都是自动化的,百叶窗也是如此。
- 我监视我们的天然气用量,电力用量和产量(太阳能电池板)。
- 我可以跟踪大多数电话的位置,并在进入一个区域时开始操作,例如当我回家时打开车库灯。
- 它还可以控制我们所有的娱乐系统,例如三星电视和Sonos扬声器。
- 它能够自动发现网络上的大多数设备,因此上手起来非常容易。
我已经每天使用Home Assistant已有3年了,它仍处于测试阶段,但这是我尝试过的所有平台中最好的平台。它能够集成和控制各种设备和协议,并且都是免费和开源的。
如果您有兴趣将房屋自动化,请确保有机会!如果您想了解更多,请访问他们的官方网站。如果可以,请将其安装在Raspberry Pi上。到目前为止,这是最简单,最安全的入门方法。我将其安装在Docker容器内功能更强大的服务器上。
14. Flask
Flask是我的入门库,用于创建快速的Web服务或简单的网站。这是一个微框架,这意味着Flask旨在使核心保持简单但可扩展。有700多个官方和社区扩展。
如果您知道自己将开发一个大型的Web应用程序,则可能需要研究一个更完整的框架。该类别中最受欢迎的是Django。
15. BeautifulSoup
如果您从网站上提取了一些HTML,则需要对其进行解析以获取实际所需的内容。Beautiful Soup是一个Python库,用于从HTML和XML文件中提取数据。它提供了导航,搜索和修改解析树的简单方法。它非常强大,即使损坏了,也能够处理各种HTML。相信我,HTML经常被破坏,所以这是一个非常强大的功能。
它的一些主要功能:
- Beautiful Soup会自动将传入文档转换为Unicode,将传出文档转换为UTF-8。您无需考虑编码。
- Beautiful Soup位于流行的Python解析器(如lxml和html5lib)的顶部,使您可以尝试不同的解析策略或提高灵活性。
- BeautifulSoup会解析您提供的任何内容,并为您做遍历树的工作。您可以将其告诉“查找所有链接”,或“查找带有粗体的表格标题,然后给我该文字。”
需要下面的资料的,还有更多课件资源的,请私信我“666”领取!!!
私信我还有更多惊喜哦!!!

