你必须知道的18个Python开源库
人生苦短,我用Python
python可以帮助我们完成很多工作,老K根据适用领域,为各位整理了最常用的18个开源库,各位可以根据自己的业务方向,针对性地进行学习和研究。
网站开发
一个健全的计算机语言,一定会涉及到http请求以及网站开发相关的功能,python也是这样的。
1. requests
requests
能帮助你轻松实现
http
请求,极易上手,是目前
github
标星最多的
python
项目之一。如果你的工作涉及模拟
http
请求,
requests
是你必须要掌握的
python
库之一。
https://pypi.org/project/requests/
2. django
django
对于需要网站开发的
python
工程师来说十分重要,包括instagram和tinder这样的网站,最初也是通过
django
建立起他们的网站的。
Django
是一个完全用
python
实现的后端web框架,它甚至可以和其它语言框架对接。它拥有大量web开发所需要的功能。通过
Django
,你可以很快实现你自己的企业级网站。
https://pypi.org/project/Django/
3. flask
Flask
被视为
django
的竞争对手。
Flask
也是用于开发网站的后端web框架,它的工作方式和
Django
相似,但它设置起来更便捷,并且没有
django
那么复杂的功能和工具。
所以,如果您仅仅是需要开发一个轻量级的网站,不包括诸如身份验证等功能,那
Flask
会成为您的选项。
https://pypi.org/project/Flask/
4. twisted
twisted
可以用于在线游戏开发的工具,她是一个事件驱动的网络编程框架。
如果你正在尝试在线互动或实时响应相关的功能,你可以研究一下
twisted
https://twistedmatrix.com/trac/
5. beautifulsoup4
beautifulsoup4
是一个
html
解析工具。如果你的方向是一个爬虫工程师,需要获取
html
数据,
beautifulsoup4
一定可以给到您帮助。
https://pypi.org/project/beautifulsoup4/
6. selenium
selenium
可以实现网站上的一些自动化操作。它可以模拟浏览器的点击按钮、输入文本等行为。开发者的初衷是用于测试网站功能,但现在也被广泛用于
html
动态网页的数据爬取。
如果你是一个网络工程师,
selenium
是一个绝对值得你花时间去研究的开源库。
https://selenium-python.readthedocs.io/
数据科学
python的流行源于数据科学的流行,数据科学家通过python的开源库,让研究工作变得更加轻松。
7. numpy
numpy
是
python
在数据科学应用领域里的基础。它允许对数组操作,这使得诸如矩阵、甚至一些三维、四维、五维的数据运算变得容器。
numpy
的很多算法是用C语言实现的,这让您的数据运算比其它模块快得多。
https://numpy.org/
8. pandas
pandas
作为数据处理工具,有着相当强的可操作性和可读性,尤其当你使用
JupyterNotbook
的时候,并且它基本可以完成一切你能想到的数据处理操作。
现在,
pandas
已经成为了数据科学家的一项必备技能了。
https://pandas.pydata.org/
9. matplotlib
matplotlib
非常适合用于数据可视化的任务,它对制作图表、分析数据,甚至机器学习建模上都有很大帮助,比如将损失函数可视化。
https://matplotlib.org/
10. nltk
nltk
是自然语言工具包,它能帮您方便地处理文本数据,并进行学习分析。
如果你有文本数据需要处理,
nltk
可以很好地帮助到您。
https://www.nltk.org/
11. opencv
opencv
是一款功能强大的图像及视频数据处理工具,我们可以用它完成诸如特征检测之类的任务,它在人脸识别、物件检测有很大的应用价值。
opencv
中内置了一些机器学习的模型,可以让你更快完成图像数据处理以及绘制的工作。
https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_tutorials.html
AI机器学习
python进入公众视野是源自于AI和机器学习在工业界的应用。越来越多的人因为学习AI和机器学习,而开始学习python这门计算机语言。
12. tensorflow
tensorflow
是迄今最强大的AI开源库,它由
google
维护和支持。它能实现一些非常复杂的数学模型,比如深度神经网络模型、卷积神经网络模型等。
tensorflow
有着健全的说明指南,你可以在
tensorflow
官网上学习如何开始你的AI项目。
https://www.tensorflow.org/
13. keras
Keras
是一个在
python
上运行很好的开源库。相对于
tensorflow
,它更易于上手,它让制作模型和执行操作变得更加容易。
Keras
也是
Kaggle
竞赛中最常被使用的深度学习框架之一,致力于AI机器学习的你,一定不能错过它。
https://keras.io/
14. pytorch
pytorch
也是诸多领先的深度学习框架之一。不过相比
tensorflow
,
pytorch
的应用并没有那么广泛。但作为一个以机器学习行业为目标的同学,
pytorch
绝对值得一试。
https://pytorch.org/
15. sklearn
sklearn
是
scikit-learn
的缩写,它绝对没有前几个模块那么强大,但胜在它比较轻量,它能帮我们更快实现一些简单的算法,诸如聚类算法、回归问题、支持向量机等。
以上这些功能自然可以用
tensorflow
实现,但如果你需要一个轻量级的库来学习机器学习,作为入门,
sklearn
是一个很好的选择。
https://scikit-learn.org/stable/
图形用户界面(GUI)
图形用户界面不是Python的强项,但在这个领域,你仍然能找到很多值得尝试的库。
16. Kivy
Kivy
是一个良好的应用程序构建框架。它能跨平台运行,用
Kivy
构建的程序可以在
Linux
、
Mac
、
Windows
、
iOS
以及
Android
上顺畅地运行。它便于使用,当你需要开发一个全平台运行的程序时,可以了解一下
kivy
。
https://kivy.org/#home
17. pyqt5
pyqt5
可以说是诸多
python
下最好的
GUI
工具。使用灵活,甚至可以使用
css
样式来设置你的应用程序界面。
Anaconda
内置的
spyder
IDE其实就是用
pyqt5
实现的。
如果你想将您的代码构建成应用程序,
pyqt5
是你不得不学会的
python
开源库。
https://pypi.org/project/PyQt5/
18. tkinter
tkinter
是一款较早的
GUI
工具,它和
pyqt5
有点像。对于初学者来说,
tkinter
较容易上手。
https://wiki.python.org/moin/TkInter
其它
ex. pygame
pygame
是一款用于游戏开发的工具。如果你想开发一款属于自己的简单2D游戏或者其它小工具,
pygame
绝对可以帮你实现你的想法。
Pygame
也是你完成强化学习任务时,可以仰仗的工具之一。
学会
pygame
,绝对会让你的
python
开发之旅变得有趣而又多彩。
https://www.pygame.org/docs/
部分内容整理自网络,侵删
个人能力有限,推荐可能主观,如果有其它值得推荐却遗漏的,欢迎您留言告诉我。
关注<老K玩代码>公众号,获得更多实战案例和行业资讯。
[1]Tech With Tim.Top 18 Most Useful Python Modules.[EB/OL] https://www. youtube.com/watch? v=Vi9Y9AL13Rc