作者 | 安可

来源 | 磐创AI

概述

  • 这篇文章中,我们挑选了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 urlopenwith 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

它是大规模网络抓取的框架。它为您提供了有效提取网站数据,根据需要处理数据并将其存储在首选结构和格式中所需的所有工具。

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

这是学习Scrapy并在Python中实现它的完美教程:

  • 使用Scrapy在Python中进行Web Scraping(有多个示例)

    (https://www.analyticsvidhya.com/blog/2017/07/web-scraping-in-python-using-scrapy/)

/* Selenium */

我们可以轻松地编写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库在Python中学习异常检测的一个很棒的教程

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

/* 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(在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中进行数据探索的终极指南

/* 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", , 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可用于创建交互式图表,仪表板和数据应用程序。安装代码:

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

  • 真正的善良,在于收钱办事

  • 奥巴马买了部纪录片,介绍中国企业家开了一间《美国工厂》

  • 小红书,“黄”了

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

  1. 大数据数据科学家常用面试题_进行数据科学工作面试

    大数据数据科学家常用面试题 During my time as a Data Scientist, I had the chance to interview my fair share of can ...

  2. 大数据数据科学家常用面试题_面试有关数据科学,数据理解和准备的问答

    大数据数据科学家常用面试题 问题1:在数据科学术语中,您如何称呼所分析的数据? (Q1: In the data science terminology, how do you call the da ...

  3. 大数据数据科学家常用面试题_想要成为数据科学家,解决数据科学面试的简单指南...

    大数据数据科学家常用面试题 Choose a job you love, and you will never have to work a day in your life. - Confucius ...

  4. 常用的python库

    常用的python库 简单记录一下常用的Python库,文档不断更新中. 我自己有印象的工具和库 beaufifulSoup 把HTML字符串转换成DOM节点的工具,主要用于爬虫 Turtle 简单绘 ...

  5. 送你38个常用的Python库,数值计算、可视化、机器学习等8大领域都有了

    来源:大数据DT(ID:bigdatadt) 作者:李明江 张良均 周东平 张尚佳 内容摘编自<Python3智能数据分析快速入门> 本文约5200字,建议阅读10分钟. 本文为你总结了常 ...

  6. 必备 | 人工智能和数据科学的七大 Python 库

    来源:新智元 本文约3100字,建议阅读10+分钟. 本文汇总了2018年针对数据科学家/AI的最佳库.repos.包和工具. [ 导读 ]作者根据每周发布总结的系列文章,汇总了2018年针对数据科学 ...

  7. garch预测 python_数据科学方面的Python库,实用!

    作者:Python开发与大数据人工智能原文:公众号 Python开发与大数据人工智能 Python是一种很棒的编程语言.事实上,它还是世界上发展最快的编程语言之一.它一次又一次证明了它在数据科学职位中 ...

  8. python库有什么用_Python程序员必知什么 常用的Python库有哪些

    Python程序员必知什么?常用的Python库有哪些?Python有很多丰富而强大的库,这是它成为人工智能与数据分析领域强者的关键.有很多Python开发人员想知道常用的Python库有哪些,接下来 ...

  9. python常用的库_这几个常用的python库你需要知道

    python可以说是近几年最火热.最实用的.最容易上手的工具之一了.功能强大.应用广泛,可以帮你搜集工作数据,还能帮你下载音乐,电影,于是就掀起了一波学习python的大潮,小编也毫不犹豫的加入了.但 ...

  10. 安全人员常用的python库

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

最新文章

  1. mysql yearweek 日期不准_Mysql 中,WEEK 与YEARWEEK函数的参数问题
  2. 表单的增 删 改 查
  3. [转]ExtJs基础--Html DOM、Ext Element及Component三者之间的区别
  4. Charles+安卓模拟器 抓取https请求
  5. 请问:如何实现文件日志功能?要求每天换一个文件。文件名以日期区分
  6. WinForm UI设计与开发思路(转)
  7. 自身经历第二次面试(阿里)
  8. mininet 应用实践
  9. 实现一个简单的前端水印
  10. Django no such table: django_session错误解决办法
  11. 程序员的身价取决于手中产品
  12. 庆祝一下博文过100篇访问量过30万
  13. 款装机热门电源横向评测
  14. 他面前有一个人,有一把刀
  15. 基于springboot+vue的房屋租赁系统(前后端分离)
  16. windows7安装中注入USB3.0和NVME驱动
  17. 云服务器部署网易云音乐API(node.js)
  18. XRD如何分析残余应力
  19. STM32F107 资料
  20. iOS面试与核心基础之启动优化

热门文章

  1. [征求意见]关于收录精华区文章的标准
  2. 不是我吹,这款神仙 IDEA 插件你真没用过!
  3. 面试再问HashMap,求你把这篇文章发给他!
  4. 自从阿里拿下 Flink 以后, 你还不懂 Flink 就 out 了
  5. 雷军说马云骗子、柳传志弃投百度、王兴骂滴滴垃圾…14位大佬悔不当初
  6. 格局再变?AWS CDN 落地中国
  7. 我是如何获取新知识的?
  8. shell初学之nginx(负载均衡)
  9. 生成器应用及知识推广
  10. 前端之JQuery:JQuery属性操作