python大神作品_掌握了这24个顶级Python库,你就是大神!

全文共11815字,预计学习时长24分钟

2934349b033b5bb58d96b25c0252e23cb700bc51.jpeg?token=5820b892331d4177f3fc1c31ed29909a&s=5261B9448E472CD65D41590903001099

Python有以下三个特点:

· 易用性和灵活性

· 全行业高接受度:Python无疑是业界最流行的数据科学语言

· 用于数据科学的Python库的数量优势

事实上,由于Python库种类很多,要跟上其发展速度非常困难。因此,本文介绍了24种涵盖端到端数据科学生命周期的Python库。

文中提及了用于数据清理、数据操作、可视化、构建模型甚至模型部署(以及其他用途)的库。这是一个相当全面的列表,有助于你使用Python开启数据科学之旅。

023b5bb5c9ea15ce8112c553ec840df63b87b271.jpeg?token=f84054d89bcb70662c0beeb1735b4c49

用于不同数据科学任务的Python库

用于数据收集的Python库

· Beautiful Soup

· Scrapy

· Selenium

用于数据清理和数据操作的Python库

· Pandas

· PyOD

· NumPy

· Spacy

用于数据可视化的Python库

· Matplotlib

· Seaborn

· Bokeh

用于建模的Python库

· Scikit-learn

· TensorFlow

· PyTorch

用于模型解释的Python库

· Lime

· H2O

用于语音处理的Python库

· Librosa

· Madmom

· pyAudioAnalysis

用于图像处理的Python库

· OpenCV-Python

· Scikit-image

· Pillow

作为数据库的Python库

· Psycopg

· SQLAlchemy

用于模型部署的Python库

· Flask

023b5bb5c9ea15ce8112c553ec840df63b87b271.jpeg?token=f84054d89bcb70662c0beeb1735b4c49

用于数据收集的Python库

你是否曾遇到过这样的情况:缺少解决问题的数据?这是数据科学中一个永恒的问题。这也是为什么学习提取和收集数据对数据科学家来说是一项非常重要的技能。数据提取和收集开辟了前所未有的道路。

以下是三个用于提取和收集数据的Python库:

Beautiful Soup

收集数据的最佳方式之一就是抓取网站(当然是以合乎道德和法律的手段!)徒手做这件事需要耗费大量的劳动和时间。Beautiful Soup无疑是一大救星。

Beautiful Soup是一个HTML和XML解析器,可为被解析的页面创建解析树,从而用于从web页面中提取数据。从网页中提取数据的过程称为网页抓取。

使用以下代码可安装BeautifulSoup:

pip install beautifulsoup4

下面是一个可实现从HTML中提取所有锚标记的Beautiful Soup简单代码:

#!/usr/bin/python3

# Anchor extraction from html document

from bs4 import BeautifulSoup

from urllib.request import urlopen

with urlopen('LINK') as response:

soup = BeautifulSoup(response, 'html.parser')

for anchor in soup.find_all('a'):

print(anchor.get('href', '/'))

建议阅读下面的文章,学习如何在Python中使用Beautiful Soup:

《新手指南:在Python中使用BeautifulSoup进行网页抓取》

Scrapy

Scrapy是另一个可有效用于网页抓取的Python库。它是一个开源的协作框架,用于从网站中提取所需数据。使用起来快捷简单。

下面是用于安装Scrapy的代码:

pip install scrapy

d439b6003af33a873255223ff2dd273d5343b565.png?token=378e16df666cc3fc931e4eaedcb8ab73&s=40A41C73D6C6FF1144F145E40300B032

Scrapy是一个用于大规模网页抓取的框架。可提供所有需要的工具有效地从网站中抓取数据,且依需要处理数据,并以使用者偏好的结构和格式存储数据。

下面是一个实现Scrapy的简单代码:

import scrapy

class Spider(scrapy.Spider):

name = 'NAME'

start_urls = ['LINK']

def parse(self, response):

for title in response.css('.post-header>h2'):

yield {'title': title.css('a ::text').get()}

for next_page in response.css('a.next-posts-link'):

yield response.follow(next_page, self.parse

下面是一个学习Scrapy并在Python中实现Scrapy的绝佳教程:

《使用Scrapy在Python中进行网页抓取(含多个示例)》

Selenium

Selenium是一个倍受欢迎的自动化浏览器工具。在业界常用于测试,但对于网页抓取也非常方便。Selenium在IT领域非常流行。

42166d224f4a20a444a4c4dca4d3af27730ed0fd.png?token=1aad622b478db4a6696666d2c7e2308b&s=E9CA7A2356646AA7548DF5400300A091

编写Python脚本来自动化使用Selenium的web浏览器是很容易的。它允许免费高效地提取数据,并将其存储在首选格式中以备后用。

关于使用Python和Selenium抓取YouTube视频数据的文章:

《数据科学项目:使用Python和Selenium抓取YouTube数据对视频进行分类》

023b5bb5c9ea15ce8112c553ec840df63b87b271.jpeg?token=f84054d89bcb70662c0beeb1735b4c49

用于数据清理和数据操作的Python库

收集了数据之后,接下来要清理可能面临的任何混乱数据,并学习如何操作数据,方便数据为建模做好准备。

下面是四个可用于数据清理和数据操作的Python库。请记住,文中仅指明在现实世界中处理结构化(数值)数据和文本数据(非结构化)——而该库列表涵盖了所有内容。

Pandas

在数据操作和数据分析方面,Pandas绝无敌手。Pandas一度是最流行的Python库。Pandas是用Python语言编写的,主要用于数据操作和数据分析。

这个名称来源于术语“面板数据”,“面板数据”是一个计量经济学术语,指的是包含同一个人在多个时间段内的观察结果的数据集。

Pandas在Python or Anaconda中已完成预安装,但以防需要,安装代码如下:

pip install pandas

9345d688d43f879452651254e69a39f11ad53abc.png?token=606d094704ed08317c2652c4d1501328&s=0B085A22CECEFE13425D04DE030090B2

Pandas有以下特点:

· 数据集连接和合并

· 删除和插入数据结构列

· 数据过滤

· 重塑数据集

· 使用DataFrame对象来操作数据等

下面是一篇文章以及一份很棒的Cheatsheet,有助于使Pandas技能达标:

《Python中用于数据操作的12种有用的Pandas技术》

《CheatSheet:在Python中使用Pandas进行数据探索》

PyOD

难以发现异常值?这绝非个例。别担心,PyOD库就在这里。

PyOD是一个全面的、可伸缩的Python工具包,用于检测外围对象。离群值检测基本上是识别与大多数数据显著不同的稀有项或观测值。

以下代码可用于下载pyOD:

pip install pyod

PyOD是如何工作的?如何实现PyOD?下面一则指南将回答所有关于PyOD的问题:

《学习在Python中使用PyOD库检测异常值的绝佳教程》

NumPy

与Pandas一样,NumPy也是一个非常受欢迎的Python库。NumPy引入了支持大型多维数组和矩阵的函数,同时还引入了高级数学函数来处理这些数组和矩阵。

NumPy是一个开源库,有多方贡献者。在 Anaconda和Python中已预安装Numpy,但以防需要,下面是安装代码:

$ pip install numpy

e850352ac65c10386a8446bb8690a416b17e8953.png?token=7901755f65c7ce4b17d1b0e269f66bb4&s=AFAAE2077F8E1F7EC756508703003088

下面是使用NumPy可执行的一些基本功能:

创建数组

import numpy as np

x = np.array([1, 2, 3])

print(x)

y = np.arange(10)

print(y)

output - [1 2 3]

[0 1 2 3 4 5 6 7 8 9]

基本运算

a = np.array([1, 2, 3, 6])

b = np.linspace(0, 2, 4)

c = a - b

print(c)

print(a**2)

output - [1. 1.33333333 1.66666667 4. ]

[ 1 4 9 36]

以及更多其他功能!

SpaCy

342ac65c1038534335b79ba9a792877bcb808840.jpeg?token=409b49b11bf5d04427259bb51dd5be78&s=C6B5C46A4C9448431BBE63510200F0B9

目前已经讨论了如何清理数据和处理数值数据。但是如果正在处理文本数据呢?到目前为止,现有的库都无法解决该问题。

Spacy是一个非常有用且灵活的自然语言处理( NLP )库和框架,用于清理创建模型的文本文档。与类似用途的其他库相比,SpaCy速度更快。

在Linux中安装Spacy:

pip install -U spacy

python -m spacy download en

以下是学习spaCy的课程:

《简化自然语言处理——使用SpaCy(在Python中)》

023b5bb5c9ea15ce8112c553ec840df63b87b271.jpeg?token=f84054d89bcb70662c0beeb1735b4c49

用于数据可视化的Python库

下一步是什么呢?数据可视化!此处假设已得到验证,并且发掘了隐藏的观点和模式。

下面是三个用于数据可视化的绝佳Python库。

Matplotlib

Matplotlib是Python中最流行的数据可视化库。允许生成和构建各种各样的图。Matplotlib是笔者的首选库,可与Seaborn一起用于进行数据可视化研究。

以下是安装Matplotli的代码:

$ pip install matplotlib

34fae6cd7b899e516af41a6f7626ee36c9950ddc.png?token=1fe9bfac0ba30081f95717adf3050c2f&s=2351336EFA9A8C179F62641A030050DA

下面是使用Matplotlib构建的不同类型图示的部分例子:

柱状图

%matplotlib inline

import matplotlib.pyplot as plt

from numpy.random import normal

x = normal(size=100)

plt.hist(x, bins=20)

plt.show()

a08b87d6277f9e2f9ce8397c2bb1de21b999f36f.png?token=ed2dbca038ed6067626a34d3f1f22388&s=592A3C72C6C783196D1709570200F0EB

3D 图表

from matplotlib import cm

from mpl_toolkits.mplot3d import Axes3D

import matplotlib.pyplot as plt

import numpy as np

fig = plt.figure()

ax = fig.gca(projection='3d')

X = np.arange(-10, 10, 0.1)

Y = np.arange(-10, 10, 0.1)

X, Y = np.meshgrid(X, Y)

R = np.sqrt(X**2 + Y**2)

Z = np.sin(R)

surf = ax.plot_surface(X, Y, Z, rstride=1,cstride=1, cmap=cm.coolwarm)

plt.show()

48540923dd54564e6a899124875fab87d0584f41.jpeg?token=2ed4539695d591843139f627ab86b632&s=7750C9320661730311689BFF03008025

目前已经介绍了Pandas、NumPy和Matplotlib,那么请查看下面的教程,该教程结合了以上三个库进行讲解:

《使用NumPy、Matplotlib和Pandas在Python中进行数据探索的终极指南》

Seaborn

Seaborn是另一个基于matplotlib的绘图库。它是一个为绘制有吸引力的图像而提供高级接口的python库。matplotlib能实现功能,Seaborn只是以另一种更吸引人的视觉方式来实现。

Seaborn 的一些特点:

· 作为一个面向数据集的API,可用于查验多个变量之间的关系

· 便于查看复杂数据集的整体结构

· 用于选择显示数据中模式的调色板的工具

下面一行代码可用于安装Seaborn:

pip install seaborn

a50f4bfbfbedab641c4b12c9c3b798c679311e07.png?token=9408c2696afd0ff5d9a4e5abe4f8e581&s=2DA2C8129B3F50884E7531CA0300C0B2

浏览下面这些很酷的图表,看看seaborn能做些什么:

import seaborn as sns

sns.set()

tips =sns.load_dataset("tips")

sns.relplot(x="total_bill",y="tip", col="time",

hue="smoker",style="smoker", size="size",

data=tips);

d1160924ab18972be6a37688d24c4c8c9f510a58.png?token=1eba2a14d6f52ed97edf73ebd64a3239&s=18287C321B836D645CCD01CA0300C0B1

下面是另外一个例子:

import seaborn as sns

sns.catplot(x="day",y="total_bill", hue="smoker",

kind="violin",split=True, data=tips);

91ef76c6a7efce1bf2854e999bd0c4dbb58f65b9.png?token=35ae655ad1ae84c6ed31ff317b290c37&s=1EA07C2377CE5F595C74E0C4030050A2

Bokeh

Bokeh是一个面向现代网页浏览器的交互式可视化库,为大量数据集提供优美的通用图形结构。

Bokeh可用于创建交互式绘图、仪表板和数据应用程序。

安装:

pip install bokeh

faedab64034f78f0db5ef07f4db03d50b2191c6e.jpeg?token=1f4003fb51ef33fc68f3cfee28d7cf03&s=7A522C9E8BF04D900B5824DD0300C0B2

了解更多关于Bokeh的知识及其实际应用:

《使用Bokeh的交互式数据可视化(在Python中)》

023b5bb5c9ea15ce8112c553ec840df63b87b271.jpeg?token=f84054d89bcb70662c0beeb1735b4c49

用于建模的Python库

现在到了本文最令人期待的部分——建模!这也是大多数人一开始接触数据科学的原因。

接下来通过这三个Python库来探索建模。

Scikit-learn

就像用于数据操作的Pandas和用于可视化的matplotlib一样,scikit-learn是Python构建模型中的佼佼者。没有什么能与之媲美。

事实上,scikit-learn建立在NumPy,SciPy和matplotlib之上。它是开放源码的,每个人都可以访问,并且可以在各种环境中重用。

Scikit-learn支持在机器学习中执行的不同操作,如分类、回归、聚类和模型选择等。命名它——那么scikit-learn会有一个模块。

建议浏览以下链接以了解有关scikit-learn的更多信息:

《Python中的Scikit-learn——笔者去年学到的最重要的机器学习工具!》

TensorFlow

TensorFlow由谷歌开发,是一个流行的深度学习库,可帮助构建、培训不同模型。是一个开放源码的端到端平台。TensorFlow提供简单的模型构建,强大的机器学习生产,以及强大的实验工具和库。

TensorFlow提供多个抽象级别,可根据需要进行选择。TensorFlow通过使用高级Keras API来构建和训练模型,这使TensorFlow入门和机器学习变得容易。

使用TensorFlow从阅读这些文章开始:

《TensorFlow 101:理解张量和图像以便开始深入学习》

《开始使用Keras和TensorFlow在R中进行深度学习》

PyTorch

什么是PyTorch?其实,这是一个基于Python的科学计算包,其功能如下:

· NumPy的替代品,可使用GPU的强大功能

· 深度学习研究型平台,拥有最大灵活性和最快速度

PyTorch提供以下功能:

· 混合前端

· 工具和库:由研发人员组成的活跃社区已经建立了一个丰富的工具和库的生态系统,用于扩展PyTorch并支持计算机视觉和强化学习等领域的开发

· 云支持:PyTorch支持在主要的云平台上运行,通过预构建的映像、对GPU的大规模训练、以及在生产规模环境中运行模型的能力等,可提供无摩擦的开发和轻松拓展

以下是两篇有关PyTorch的十分详细且易于理解的文章:

《PyTorch简介——一个简单但功能强大的深度学习库》

《开始使用PyTorch——学习如何建立快速和准确的神经网络(以4个案例研究为例)》

023b5bb5c9ea15ce8112c553ec840df63b87b271.jpeg?token=f84054d89bcb70662c0beeb1735b4c49

用于数据解释性的Python库

你真的了解模型如何工作吗?能解释模型为什么能够得出结果吗?这些是每个数据科学家都能够回答的问题。构建黑盒模型在业界毫无用处。

所以,上文中已经提到的两个Python库可以帮助解释模型的性能。

LIME

LIME是一种算法(库),可以解释任何分类器或回归量的预测。LIME是如何做到的呢?通过可解释的模型在局部不断接近预测值,这个模型解释器可用于生成任何分类算法的解释。

b21bb051f819861800afb1b77e6c19768ad4e69b.jpeg?token=88723dec9ea911f461598cff0311531e&s=188E3C7AEFB773925F485A6503000066

安装LIME很简单:

pip install lime

下文将从总体上帮助开发LIME背后的直觉和模型可解释性:

《在机器学习模型中建立信任(在Python中使用LIME)》

H2O

相信很多人都听说过H2O.ai,自动化机器学习的市场领导者。但是你知道其在Python中也有一个模型可解释性库吗?

H2O的无人驾驶AI,提供简单的数据可视化技术,用于表示高度特征交互和非线性模型行为,通过可视化提供机器学习可解释性(MLI),说明建模结果和模型中特征的影响。

5ab5c9ea15ce36d3e0060cfe09720d82e850b100.png?token=2a97fa327156a533a53c81bf91b042dc&s=AA0D7E6ECF814EC05147367E0300107C

通过下文,阅读有关H2O的无人驾驶AI执行MLI的更多信息。

《机器学习可解释性》

023b5bb5c9ea15ce8112c553ec840df63b87b271.jpeg?token=f84054d89bcb70662c0beeb1735b4c49

用于音频处理的Python库

音频处理或音频分析是指从音频信号中提取信息和含义以进行分析、分类或任何其他任务。这正在成为深度学习中的一种流行功能,所以要留意这一点。

LibROSA

LibROSA是一个用于音乐和音频分析的Python库。它提供了创建音乐信息检索系统所需的构建块。

这是一篇关于音频处理及其工作原理的深度文章:

《利用深度学习开始音频数据分析(含案例研究)》

Madmom

Madmom是一个用于音频数据分析的很棒的Python库。它是一个用Python编写的音频信号处理库,主要用于音乐信息检索(MIR)任务。

以下是安装Madmom的必备条件:

· NumPy

· SciPy

· Cython

· Mido

以下软件包用于测试安装:

· PyTest

· Fyaudio

· PyFftw

安装Madmom的代码:

pip install madmom

下文可用以了解Madmom如何用于音乐信息检索:

《学习音乐信息检索的音频节拍追踪(使用Python代码)》

pyAudioAnalysis

pyAudioAnalysis是一个用于音频特征提取、分类和分段的Python库,涵盖广泛的音频分析任务,例如:

· 对未知声音进行分类

· 检测音频故障并排除长时间录音中的静音时段

· 进行监督和非监督的分割

· 提取音频缩略图等等

可以使用以下代码进行安装:

pip install pyAudioAnalysis

f703738da9773912759e6762cc98b11d377ae284.jpeg?token=d6dca34d8ec7e189041defa49131b3d2&s=21B6EC3683B06D8004C48858020040F3

023b5bb5c9ea15ce8112c553ec840df63b87b271.jpeg?token=f84054d89bcb70662c0beeb1735b4c49

用于图像处理的Python库

如果想要在数据科学行业有一番成就,那么必须学习如何使用图像数据。随着系统能够收集越来越多的数据(主要得益于计算资源的进步),图像处理越来越无处不在。

因此,请确保熟悉以下三个Python库中的至少一个。

OpenCV-Python

谈到图像处理,OpenCV首先浮现在脑海中。OpenCV-Python是用于图像处理的Python API,结合了OpenCV C ++ API和Python语言的最佳特性。主要用于解决计算机视觉问题。

OpenCV-Python使用了上文提到的NumPy。所有OpenCV阵列结构都与NumPy数组相互转换。这也使得与使用Numpy的其他库(如SciPy和Matplotlib)集成变得更加容易。

c9fcc3cec3fdfc03e98630dde0beb091a5c2265b.png?token=6b2b979d80cc450441feaf9c03c6013e&s=5E85F40A81C0E5138DCC4E580300D0E2

在系统中安装OpenCV-Python:

pip3 install opencv-python

以下是两个关于如何在Python中使用OpenCV的流行教程:

《基于深度学习的视频人脸检测模型建立(Python实现)》

《16个OpenCV函数启动计算机视觉之旅(使用Python代码)》

Scikit-image

Scikit-image是另一个用于图像处理的python库,是用于执行多个不同图像处理任务的算法集合。可用于图像分割、几何变换、色彩空间操作、分析、过滤,形态学、特征检测等等。

在安装scikit-image前,请先安装以下软件包:

· Python(> = 3.5)

· NumPy(> = 1.11.0)

· SciPy(> = 0.17.0)

· joblib(> = 0.11)

这就是在机器上安装scikit-image的方法:

pip install -U scikit-learn

3801213fb80e7bec1cc1fa831baf8e3d9b506b3b.png?token=f4bc9d64a4c8a4e5bbc5710a1b1b601d&s=71967E92CDA46E1352F5E9DC03005073

Pillow

Pillow是PIL(Python Imaging Library)的新版本。它是从PIL派生出来的,在一些Linux发行版(如Ubuntu)中被用作原始PIL的替代。

Pillow提供了几种执行图像处理的标准程序:

· 逐像素操作

· 掩模和透明处理

· 图像过滤,例如模糊,轮廓,平滑或边缘监测

· 图像增强,例如锐化,调整亮度、对比度或颜色

· 在图像上添加文字等等

安装Pillow:

pip install Pillow

6159252dd42a283470a6a7146f34feef15cebf37.jpeg?token=b055136c40ee629ccfd29b5e66a61105&s=25900C78C4B11C331E1D1C5C03008090

查看以下关于在计算机视觉中使用Pillow的AI漫画:

《AI漫画:Z.A.I.N —— 第二期:使用计算机视觉进行面部识别》

023b5bb5c9ea15ce8112c553ec840df63b87b271.jpeg?token=f84054d89bcb70662c0beeb1735b4c49

用于数据库的Python库

学习如何从数据库存储、访问和检索数据是数据科学家必备的技能。但是如何在不首先检索数据的情况下做到建模呢?

接下来介绍两个与SQL相关的Python库。

psycopg

48540923dd54564e2853af67875fab87d0584fc4.jpeg?token=0cc71090b7c4584b8efa2f692d0d84ce&s=0B24FC0272D143F95CAD77670300F064

Psycopg是Python编程语言中最流行的PostgreSQL(高级开源代码关系数据库)适配器。Psycopg的核心是完全实现Python DB API 2.0规范。

目前的psycopg2实现支持:

· Python版本2.7

· Python 3版本(3.4到3.7)

· PostgreSQL服务器版本(7.4到11)

· PostgreSQL客户端库版本(9.1以上)

以下是安装psycopg2的方法:

pip install psycopg2

SQLAlchemy

SQL是最流行的数据库语言。SQLAlchemy是pythonSQL工具包和对象关系映射器,它为应用程序开发人员提供了SQL的全部功能,且极具灵活性。

d62a6059252dd42a0a58f1c837ba6cb0c8eab882.png?token=ee2c85584a554beef579efac8d6362d8&s=3AA872235E4EDA1140A243E40300803E

SQL旨在实现高效、高性能的数据库访问。SQLAlchemy将数据库视为关系代数引擎,而不仅仅是表的集合。

要安装SQLAlchemy,可以使用以下代码行:

pip install SQLAlchemy

023b5bb5c9ea15ce8112c553ec840df63b87b271.jpeg?token=f84054d89bcb70662c0beeb1735b4c49

用于部署的Python库

你知道哪些模型部署?部署模型意味着将最终模型放入最终应用程序(技术上称为生产环境)。

Flask

Flask是一个用Python编写的Web框架,广泛用于部署数据科学模型。Flask由两个部分组成:

· Werkzeug:Python编程语言的实用程序库

· Jinja:Python的模板引擎

3c6d55fbb2fb43169e7a98fc1625712608f7d352.png?token=0bb409f17c12302c63b6bec0676b9013&s=6B61736EFAA5B37C4E719C0F0000E0C1

查看下面的示例以打印“Hello world”:

from flask import Flask

app = Flask(__name__)

@app.route("/")

def hello():

return "HelloWorld!"

if __name__ == "__main__":

app.run()

以下文章是学习Flask的良好开端:

《在生产中将机器学习模型部署为API的教程(使用Flask)》

bd3eb13533fa828b6740f6d9a79b7631970a5a36.jpeg?token=9ffcd19462d359df85ba24eb6d76f421

留言 点赞 关注

我们一起分享AI学习与发展的干货

欢迎关注全平台AI垂类自媒体 “读芯术”

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值