人生苦短,我用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内置的spyderIDE其实就是用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