概述

  • 这篇文章中,我们挑选了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 documentfrom bs4 import BeautifulSoupfrom urllib.request import urlopenwith urlopen('LINK') as response:soup = BeautifulSoup(response, 'html.parser')for anchor in soup.find_all('a'):print(anchor.get('href', '/'))
# 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 scrapyclass 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)

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 npx = 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 - bprint(c)print(a**2)#output - [1. 1.33333333 1.66666667 4. ]# [ 1 4 9 36]
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 spacypython -m spacy download enpython -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 inlineimport matplotlib.pyplot as pltfrom numpy.random import normalx = normal(size=100)plt.hist(x, bins=20)plt.show()
%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 cmfrom mpl_toolkits.mplot3d import Axes3Dimport matplotlib.pyplot as pltimport numpy as npfig = 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()
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 snssns.set()tips = sns.load_dataset("tips")sns.relplot(x="total_bill", y="tip", col="time",hue="smoker", style="smoker", size="size",data=tips);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 snssns.catplot(x="day", y="total_bill", hue="smoker",kind="violin", split=True, data=tips);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/)

欢迎关注磐创博客资源汇总站:

http://docs.panchuang.net/

欢迎关注PyTorch官方中文教程站:

http://pytorch.panchuang.net/

一文总结数据科学家常用的Python库(上)的更多相关文章

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

    用于建模的Python库 我们已经到达了本文最受期待的部分 - 构建模型!这就是我们大多数人首先进入数据科学领域的原因,不是吗? 让我们通过这三个Python库探索模型构建. Scikit-learn ...

  2. 总结数据科学家常用的Python库

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

  3. Web 开发和数据科学家仍是 Python 开发的两大主力

    由于 Python 2 即将退役,使用 Python 3 的开发者大约为 90%,Python 2 的使用量正在迅速减少.而去年仍有 1/4 的人使用 Python 2. Web 开发和数据科学家仍是 ...

  4. 3 个用于数据科学的顶级 Python 库

    使用这些库把 Python 变成一个科学数据分析和建模工具. Python 的许多特性,比如开发效率.代码可读性.速度等使之成为了数据科学爱好者的首选编程语言.对于想要升级应用程序功能的数据科学家和机 ...

  5. (转载)常用的Python库

    http://forum.ubuntu.com.cn/viewtopic.php?f=63&t=249573&p=2640959 Tkinter ---- Python默认的图形界面接 ...

  6. 安全人员常用的python库

    如果你对漏洞挖掘.逆向工程分析或渗透测试感兴趣的话,我第一个要推荐给你的就是Python编程语言.Python不仅语法简单上手容易,而且它还有大量功能强大的库和程序可供我们使用.在这篇文章中,我们会给 ...

  7. 常用的python 库地址

    来源   https://pypi.python.org/pypi wordcloud  https://github.com/amueller/word_cloud.git jieba https: ...

  8. 记录一些常用的python库、软件或者网址

    1.数据收集 BeautifulSoup.scrapy.selenium.requests 2.数据分析 pandas.numpy.pyDD.spacy 3.数据可视化 matplotlib.seab ...

  9. 为什么数据科学家们选择了Python语言?

    本文由 伯乐在线 - HanSir 翻译,toolate 校稿 英文出处:Quora [伯乐在线导读]:这个问题来自 Quora,题主还补充说,“似乎很多搞数据的程序员都挺擅长 Python 的,这是 ...

随机推荐

  1. tcpdump常用方法

    tcpdump -i eth0监视制定网络接口的数据包 tcpdump host 10.13.1.135监视所有10.13.1.135主机收到和发出的数据包 tcpdump src host 10.1 ...

  2. linux 下修改最大文件数

    环境为centosV7系列 1.查看进程的打开最大文件数,默认为1024 [root@localhost ~]# ulimit -a core file size (blocks, -c) 0 dat ...

  3. Yuchuan_Linux_C 编程之十 进程及进程控制

    一.整体大纲 二.基础知识 1. 进程相关概念 1)程序和进程 程序,是指编译好的二进制文件,在磁盘上,不占用系统资源(cpu.内存.打开的文件.设备.锁....)     进程,是一个抽象的概念,与 ...

  4. Python 获取MySql某个表所有字段名

    在使用python导出数据库中数据的时候,往往除了插入的数据以外,还有表字段等信息需要导出,查阅了资料后发现了2种方法 第一种:在mysql自带的表里查询,这个表保存了每张表的字段信息,可以用pymy ...

  5. rest framework serializer

    串行器 扩大串行的用处是什么,我们想地址.然而,这不是一个简单的问题,它会采取一些严重的设计工作. -罗素基思-马吉,Django的用户组 串行器允许诸如查询集和模型实例复杂的数据转换为原生的Pyth ...

  6. idea创建django项目

    1.环境.版本 os:windows10 ide:idea python:2.7 django:1.11.25 其他的python.django不确定这么弄会不会有其他问题. 2.python 官网下 ...

  7. Polly每次重试执行不同的操作

    Polly每次重试执行不同的操作 前言   最近在写WG(用的 .net core 3.1 + wpf + abp vnext),程序里大量用到了重试机制选用的是Polly组件(只知道这个...). ...

  8. 解决idea的pom.xml文件不自动导包问题

      在用pom添加新项目的包时,突然发现pom文件不能自动导包,找了半天发现用以下两个步骤就能解决: 一:打开setting 二:找到maven

  9. 《JavaScript 模式》读书笔记(2)— 基本技巧3

    这是基本技巧的最后一篇内容,这篇内容示例代码并不多.主要是概念比较多一点. 编码约定 确定并一致遵循约定比这个具体约定是什么更为重要. 一.缩进 无论是使用tab还是空格,只要是一致遵循的,是什么并不 ...

  10. Git 基础入门

    目录 git安装 基本设置 创建版本库 相关概念 将代码提交到分支仓库 版本回退 代码修改 撤销修改 文件删除 github 远程仓库 添加远程仓库 克隆远程仓库 分支操作 忽略特殊文件 git安装 ...