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

系统 1672 0

点击上方“ Datawhal e ”,选择“星标 公众号

第一时间获取价值内容

一文总结数据科学家常用的Python库(上)_第1张图片

概述

  • 这篇文章中,我们挑选了24个用于数据科学的Python库。

  • 这些库有着不同的数据科学功能,例如数据收集,数据清理,数据探索,建模等,接下来我们会分类介绍。

  • 您觉得我们还应该包含哪些Python库?让我们知道!

介绍

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

  • 它的易用性和灵活性

  • 全行业的接受度:它是业内最流行的数据科学语言

  • 用于数据科学的庞大数量的Python库

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

一文总结数据科学家常用的Python库(上)_第2张图片

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

              
                pip install scrapy
              
            

一文总结数据科学家常用的Python库(上)_第3张图片 它是大规模网络抓取的框架。它为您提供了有效提取网站数据,根据需要处理数据并将其存储在首选结构和格式中所需的所有工具。

这是一个实现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  */

一文总结数据科学家常用的Python库(上)_第4张图片

我们可以轻松地编写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
              
            

一文总结数据科学家常用的Python库(上)_第5张图片

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库在Python中学习异常检测的一个很棒的教程

    (https://www.analyticsvidhya.com/blog/2019/02/outlier-detection-python-pyod/)

/* NumPy */

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

              
                pip install numpy
              
            

一文总结数据科学家常用的Python库(上)_第6张图片

              
                # 创建数组
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/)。

一文总结数据科学家常用的Python库(上)_第7张图片

  • 自然语言处理变得轻松 - 使用SpaCy(在Python中)

用于数据可视化的Python库

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

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

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

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

              
                pip install matplotlib
              
            

一文总结数据科学家常用的Python库(上)_第8张图片

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

              
                # 直方图
%matplotlib inline
import matplotlib.pyplot as plt
from numpy.random import normal
x = normal(size=100)
plt.hist(x, bins=20)
plt.show()
              
            

一文总结数据科学家常用的Python库(上)_第9张图片

              
                # 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()
              
            

一文总结数据科学家常用的Python库(上)_第10张图片

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

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

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

Seaborn的一些功能是:

  • 面向数据集的API,用于检查多个变量之间的关系

  • 方便地查看复杂数据集的整体结构

  • 用于选择显示数据中图案的调色板的工具

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

              
                pip install seaborn
              
            

一文总结数据科学家常用的Python库(上)_第11张图片

让我们通过一些很酷的图表来看看seaborn能做什么:

              
                import seaborn as sns
sns.set()
tips = sns.load_dataset("tips")
sns.relplot(x="total_bill", y="tip", col="time",
hue="smoker", , size="size",
data=tips);
              
            

一文总结数据科学家常用的Python库(上)_第12张图片

这是另一个例子:

              
                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
              
            

一文总结数据科学家常用的Python库(上)_第13张图片

  • 使用Bokeh进行交互式数据可视化(在Python中)

一文总结数据科学家常用的Python库(上)_第14张图片


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论