我是Python语言的忠实粉丝,它是我在数据科学方面学到的第一门编程语言。Python有三个特色:css
它的易用性和灵活性 html
全行业的接受度:它是业内最流行的数据科学语言 python
用于数据科学的庞大数量的Python库 web
事实上,有如此多的Python库,要跟上它们的发展速度可能会变得很是困难。这就是为何我决定消除这种痛苦,并编辑这24个Python库。换句话说,在数据科学领域,你掌握这个24个python库就够了!数据库
那是对的 - 我根据各自在数据科学中的角色对这些库进行了分类。因此我提到了用于数据清理,数据操做,可视化,构建模型甚至模型部署(以及其余)的库。这是一个很是全面的列表,可帮助您开始使用Python进行数据科学之旅。编程
用于数据收集的Python库:api
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库,用于提取和收集数据。
/* 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', '/'))
我建议经过如下文章来学习如何在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库能够帮助您实现这一目标。请记住,咱们将处理现实世界中的结构化(数字)和文本数据(非结构化) - 这个库列表涵盖了全部这些。
/* 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]
还有更多!
/* 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库。
/* 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()
# 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()
既然咱们已经介绍了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