一文总结数据科学家常用的Python库(上)

概述

  • 这篇文章中,我们挑选了24个用于数据科学的Python库。
  • 这些库有着不同的数据科学功能,例如数据收集,数据清理,数据探索,建模等,接下来我们会分类介绍。
  • 您觉得我们还应该包含哪些Python库?让我们知道!

介绍

我是Python语言的忠实粉丝,它是我在数据科学方面学到的第一门编程语言。Python有三个特点:

  • 它的易用性和灵活性
  • 全行业的接受度:它是业内最流行的数据科学语言
  • 用于数据科学的庞大数量的Python库

事实上,有如此多的Python库,要跟上它们的发展速度可能会变得非常困难。这就是为什么我决定消除这种痛苦,并编辑这24个Python库。换句话说,在数据科学领域,你掌握这个24个python库就够了!

那是对的 - 我根据各自在数据科学中的角色对这些库进行了分类。所以我提到了用于数据清理,数据操作,可视化,构建模型甚至模型部署(以及其他)的库。这是一个非常全面的列表,可帮助您开始使用Python进行数据科学之旅。

用于不同数据科学任务的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

用于数据收集的Python库

您是否遇到过一种情况,即您没有足够的数据来解决您想要解决的问题?这是数据科学中一个永恒的问题。这就是为什么学习如何提取和收集数据对数据科学家来说是一项非常关键的技能。它开辟了以前无法实现的途径。

所以这里有三个有用的Python库,用于提取和收集数据。

/* Beautiful Soup */ 收集数据的最佳方法之一是抓取网站(当然是道德和合法的!)。手动完成需要花费太多的手动工作和时间。美丽的汤是你的救星。

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

使用以下代码安装BeautifulSoup:

pip install beautifulsoup4

这是一个实现Beautiful Soup的简单代码,用于从HTML中提取所有anchor标记:

#!/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中使用BeautifulSoup:

  • 使用BeautifulSoup在Python中进行Web Scraping的初学者指南 (https://www.analyticsvidhya.com/blog/2015/10/beginner-guide-web-scraping-beautiful-soup-python/)

/* Scrapy */ Scrapy是另一个用于Web抓取的超级有用的Python库。它是一个开源和协作框架,用于从网站中提取您需要的数据。它使用起来快速而简单。

这是安装Scrapy的代码:

pip install 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在Python中进行Web Scraping(有多个示例) (https://www.analyticsvidhya.com/blog/2017/07/web-scraping-in-python-using-scrapy/)

/* Selenium */ Selenium是一种用于自动化浏览器的流行工具。它主要用于行业测试,但对于网络抓取也非常方便。实际上,Selenium在IT领域变得非常受欢迎,所以我相信很多人至少会听说过它。

我们可以轻松地编写Python脚本以使用Selenium自动化Web浏览器。它为我们有效地提取数据并以我们喜欢的格式存储数据,以供将来使用。

我最近写了一篇关于使用Python和Selenium抓取YouTube视频数据的文章:

  • 数据科学项目:使用Python和Selenium对YouTube数据进行刮擦以对视频进行分类 (https://www.analyticsvidhya.com/blog/2019/05/scraping-classifying-youtube-video-data-python-selenium/)

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

好吧 - 所以你已经收集了你的数据并准备好潜入。现在是时候清理我们可能面临的任何混乱数据并学习如何操作它,以便我们的数据可以用于建模。

这里有四个Python库可以帮助您实现这一目标。请记住,我们将处理现实世界中的结构化(数字)和文本数据(非结构化) - 这个库列表涵盖了所有这些。

/* Pandas */ 在数据处理和分析方面,没有什么能比pandas更胜一筹。它是现阶段最流行的Python库。Pandas是用Python语言编写的,特别适用于操作和分析任务。

Pandas需要预先安装Python或Anaconda,这里是需要的代码:

pip install pandas

Pandas提供的功能如下:

  • 数据集加入和合并
  • 数据结构列删除和插入
  • 数据过滤
  • 重塑数据集
  • DataFrame对象操纵数据等等!

这是一篇文章和一个很棒的备忘单,让你的pandas技能达到最佳状态:

  • 12用于数据操作的Python中有用的熊猫技术 (https://www.analyticsvidhya.com/blog/2016/01/12-pandas-techniques-python-data-manipulation/)
  • CheatSheet:使用Python中的Pandas进行数据探索 (https://www.analyticsvidhya.com/blog/2015/07/11-steps-perform-data-analysis-pandas-python/)

/* PyOD */ 在检测异常值时苦苦挣扎?你不是一个人。这是有抱负(甚至已建立)数据科学家的常见问题。你如何定义异常值?

别担心,PyOD库可以帮到您。

PyOD是一个全面且可扩展的Python工具包,用于检测外围对象。异常检测基本上是识别与大多数数据显着不同的稀有项目或观察。

您可以使用以下代码下载pyOD:

pip install pyod

想了解PyOD如何工作以及如何自己实现?那么,下面的指南将回答你所有的PyOD问题:

  • 使用PyOD库在Python中学习异常检测的一个很棒的教程 (https://www.analyticsvidhya.com/blog/2019/02/outlier-detection-python-pyod/)

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

NumPy是一个开源库,有多个贡献者。它预先安装了Anaconda和Python,这里是安装它的代码:

pip install 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 */ 到目前为止,我们已经讨论了如何清理和操作数值数据。但是,如果你正在处理文本数据呢?

spaCy是一个超级有用且灵活的自然语言处理(NLP)库和框架,用于清理文本文档以进行模型创建。与用于类似任务的其他库相比,SpaCy更快。

在Linux中安装Spacy的代码:

pip install -U spacy
python -m spacy download en

要在其他操作系统上安装它,请参考此链接(https://spacy.io/usage/)。

当然,我们为您学习spaCy提供了保障:

  • 自然语言处理变得轻松 - 使用SpaCy(在Python中) (https://www.analyticsvidhya.com/blog/2017/04/natural-language-processing-made-easy-using-spacy-%e2%80%8bin-python/)

用于数据可视化的Python库

下一个是什么?我在整个数据科学最喜欢的方面 - 数据可视化!数据可视化后,我们的假设将得到直观的验证!

这里有三个用于数据可视化的很棒的Python库。

/* Matplotlib */ Matplotlib是Python中最流行的数据可视化库。它允许我们生成和构建各种图表。它可以与Seaborn一起使用。

您可以通过以下代码安装matplotlib:

pip install matplotlib

以下是我们可以使用matplotlib构建的不同类型的图表的几个示例:

# 直方图
%matplotlib inline
import matplotlib.pyplot as plt
from numpy.random import normal
x = normal(size=100)
plt.hist(x, bins=20)
plt.show()
# 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()

既然我们已经介绍了Pandas,NumPy和现在的matplotlib,请查看下面的教程,将这三个Python库网格化:

  • 使用NumPy,Matplotlib和Pandas在Python中进行数据探索的终极指南 (https://www.analyticsvidhya.com/blog/2015/04/comprehensive-guide-data-exploration-sas-using-python-numpy-scipy-matplotlib-pandas/)

/* Seaborn */ Seaborn是另一个基于matplotlib的绘图库。它是一个python库,提供高级界面来绘制有吸引力的图形。matplotlib可以做什么,Seaborn只是以更具视觉吸引力的方式做到这一点。

Seaborn的一些功能是:

  • 面向数据集的API,用于检查多个变量之间的关系
  • 方便地查看复杂数据集的整体结构
  • 用于选择显示数据中图案的调色板的工具

您只需使用一行代码即可安装Seaborn:

pip install seaborn

让我们通过一些很酷的图表来看看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);

这是另一个例子:

import seaborn as sns
sns.catplot(x="day", y="total_bill", hue="smoker",
kind="violin", split=True, data=tips);

/* Bokeh */ Bokeh是一个交互式可视化库,面向现代Web浏览器进行演示。它为大量数据集提供了多种图形的优雅构造。

Bokeh可用于创建交互式图表,仪表板和数据应用程序。安装代码:

pip install bokeh

请随意阅读以下文章,了解有关Bokeh的更多信息并查看其中的操作:

  • 使用Bokeh进行交互式数据可视化(在Python中) (https://www.analyticsvidhya.com/blog/2015/08/interactive-data-visualization-library-python-bokeh/)

原文发布于微信公众号 - Datawhale(Datawhale)

原文发表时间:2019-08-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券