Summary data scientists commonly used Python library

Outline

  • In this article, we selected 24 Python library for scientific data.

  • These libraries have different data science functions, such as data collection, data cleaning, data exploration, modeling and so on, then we will introduce classification.

  • What do you think we should also contain Python libraries? let us know!

Introduction

I'm a big fan of the Python language, which I learned in science data from the first programming language. Python has three characteristics:

  • Its ease of use and flexibility

  • Industry-wide acceptance: it is the industry's most popular data scientific language

  • For the huge amount of data science Python libraries

In fact, there are so many Python libraries, keep up their pace of development can become very difficult. That's why I decided to eliminate the pain, and edit the 24 Python library. In other words, in the field of scientific data, you master the 24 python library is enough!

640?wx_fmt=png

That's right - I have these libraries were classified according to their role in data science. So I mentioned for data cleaning, data manipulation, visualization, building models and even model deployment (and other) libraries. This is a very comprehensive list to help you get started with Python for data science trip.

Scientific data for different tasks Python libraries:

Python library for data collection:

  • Beautiful Soup

  • Scrapy

  • Selenium

For data cleaning and operation of Python libraries:

  • Pandas

  • Fyod

  • NumPy

  • Spacy

For data visualization Python libraries:

  • Matplotlib

  • Seaborn

  • Bokeh

Python library for modeling:

  • Scikit-learn

  • TensorFlow

  • PyTorch

Explanatory model for Python libraries:

  • Lime

  • H2O

Python library for audio processing:

  • Librosa

  • Nadmom

  • pyAudioAnalysis

Python library for image processing:

  • OpenCV-Python

  • Scikit-image

  • Pillow

Python library for database:

  • Psycopg

  • SQLAlchemy

Python library for deployment:

  • Flask

Python library for data collection

Have you encountered a situation where you do not have enough data to solve the problem you want to solve? This is scientific data in an eternal problem. That's why learning how to extract and collect data for data scientists is a critical skill. It opens the way to previously unattainable.

So here are three useful Python library used to extract and collect data.

One of / * Beautiful Soup * / is the best way to collect data to crawl the site (of course, is the moral and legal!). Manually takes a lot of manual work and time. Beautiful Soup is your savior.

Beautiful Soup is an HTML and XML parser, it creates a parse tree for the rendered page, used to extract data from web pages. Process of extracting data from a web page called a network crawl.

The following code installed BeautifulSoup:

 

pip install beautifulsoup4

This is the Beautiful Soup achieve a simple code for extracting all the HTML anchor tag from:

 

  1.  
    #!/usr/bin/python3
  2.  
    # Anchor extraction from html document
  3.  
    from bs4 import BeautifulSoup
  4.  
    from urllib.request import urlopen
  5.  
     
  6.  
    with urlopen('LINK') as response:
  7.  
    soup = BeautifulSoup(response,  'html.parser')
  8.  
    for anchor in soup.find_all('a'):
  9.  
    print(anchor.get( 'href', '/'))

 

I recommend to learn how to use BeautifulSoup in Python by the following articles:

  • Use BeautifulSoup be beginner's guide to Web Scraping in Python

    (https://www.analyticsvidhya.com/blog/2015/10/beginner-guide-web-scraping-beautiful-soup-python/)

/* Scrapy */

This is the code Scrapy installation of:

 

pip install scrapy

640?wx_fmt=pngIt is a large-scale web crawling framework. It provides an effective extract data for your site, all the necessary tools required to process the data and stores it in the structure and format of choice.

This is a simple code to achieve Scrapy of:

 

  1.  
    import scrapy
  2.  
     
  3.  
    class Spider(scrapy.Spider):
  4.  
    name =  'NAME'
  5.  
    start_urls = [ 'LINK']
  6.  
     
  7.  
    def parse(self, response):
  8.  
    for title in response.css('.post-header>h2'):
  9.  
    yield {'title': title.css('a ::text').get()}
  10.  
     
  11.  
    for next_page in response.css('a.next-posts-link'):
  12.  
    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 */

640?wx_fmt=png

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

 

640?wx_fmt=png

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

 

640?wx_fmt=png

 

  1.  
    # 创建数组
  2.  
    import numpy  as np
  3.  
    x = np. array([1, 2, 3])
  4.  
    print(x)
  5.  
    y = np.arange( 10)
  6.  
    print(y)
  7.  
     
  8.  
    # output - [1 2 3]
  9.  
    # [0 1 2 3 4 5 6 7 8 9]
  10.  
     
  11.  
    # 基本操作
  12.  
    a = np. array([1, 2, 3, 6])
  13.  
    b = np.linspace( 0, 2, 4)
  14.  
    c = a - b
  15.  
    print(c)
  16.  
    print(a**2)
  17.  
     
  18.  
    #output - [1. 1.33333333 1.66666667 4. ]
  19.  
    # [ 1 4 9 36]

还有更多!

/* SpaCy */到目前为止,我们已经讨论了如何清理和操作数值数据。但是,如果你正在处理文本数据呢?

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

在Linux中安装Spacy的代码:

 

  1.  
    pip install -U spacy
  2.  
    python -m spacy download en

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

640?wx_fmt=png

 

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

用于数据可视化的Python库

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

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

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

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

 

pip install matplotlib

 

640?wx_fmt=png

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

 

  1.  
    # 直方图
  2.  
    %matplotlib inline
  3.  
    import matplotlib.pyplot as plt
  4.  
    from numpy.random import normal
  5.  
    x = normal(size= 100)
  6.  
    plt.hist(x, bins= 20)
  7.  
    plt.show()

640?wx_fmt=png

 

 

  1.  
    # 3D图
  2.  
    from matplotlib import cm
  3.  
    from mpl_toolkits.mplot3d import Axes3D
  4.  
    import matplotlib.pyplot as plt
  5.  
    import numpy as np
  6.  
    fig = plt.figure()
  7.  
    ax = fig.gca(projection= '3d')
  8.  
    X = np.arange( -10, 10, 0.1)
  9.  
    Y = np.arange( -10, 10, 0.1)
  10.  
    X, Y = np.meshgrid(X, Y)
  11.  
    R = np.sqrt(X** 2 + Y**2)
  12.  
    Z = np.sin(R)
  13.  
    surf = ax.plot_surface(X, Y, Z, rstride= 1, cstride=1, cmap=cm.coolwarm)
  14.  
    plt.show()

640?wx_fmt=png

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

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

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

Seaborn的一些功能是:

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

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

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

 

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

 

pip install seaborn

640?wx_fmt=png

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

 

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

640?wx_fmt=png

这是另一个例子:

 

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

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

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

 

pip install bokeh

640?wx_fmt=png

 

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

 

用于建模的Python库

我们已经到达了本文最受期待的部分 - 构建模型!这就是我们大多数人首先进入数据科学领域的原因,不是吗?

让我们通过这三个Python库探索模型构建。

/* Scikit-learn */就像用于数据操作的Pandas和用于可视化的matplotlib一样,scikit-learn是构建模型的Python库领导者。没有什么比得上它了。

事实上,scikit-learn建立在NumPy,SciPy和matplotlib之上。它是开源的,每个人都可以访问,并且可以在各种环境中重用。

640?wx_fmt=png

以下是安装scikit-learn的代码:

 

pip install scikit-learn

Scikit-learn支持在机器学习中执行的不同操作,如分类,回归,聚类,模型选择等。

我还建议您浏览以下链接以了解有关scikit-learn的更多信息:

  • Scikit-Python in Python - 我去年学到的最重要的机器学习工具!

/* TensorFlow */TensorFlow由Google开发,是一个流行的深度学习库,可帮助您构建和培训不同的模型。它是一个开源的端到端平台。TensorFlow提供简单的模型构建,强大的机器学习生成,以及强大的实验工具和库。

640?wx_fmt=png

TensorFlow提供多个抽象级别供您根据需要进行选择。它通过使用高级Keras API用于构建和训练模型,这使得TensorFlow入门和机器学习变得容易。

浏览此链接以查看安装过程:https://www.tensorflow.org/install。使用这些文章开始使用TensorFlow:

  • TensorFlow 101:了解张量和图形,让您开始深度学习

    (https://www.analyticsvidhya.com/blog/2017/03/tensorflow-understanding-tensors-and-graphs/)

  • 使用Keras和TensorFlow在R中开始深度学习(https://www.analyticsvidhya.com/blog/2017/06/getting-started-with-deep-learning-using-keras-in-r/)

     

/* PyTorch */

什么是PyTorch?嗯,这是一个基于Python的科学计算包,可以用作:

  • NumPy的替代品,可以使用GPU的强大功能

  • 深度学习研究平台,提供最大的灵活性和速度

转到此处(https://pytorch.org/get-started/locally/)查看不同操作系统的安装过程。

PyTorch提供以下功能:

  • 混合前端

  • 工具和库:一个活跃的研究人员和开发人员社区建立了丰富的工具和库生态系统,用于扩展PyTorch并支持从计算机视觉到强化学习等领域的开发

  • 云支持:PyTorch在主要云平台上得到很好的支持,通过预先构建的映像提供无摩擦的开发和轻松扩展,在GPU上进行大规模培训,在生产规模环境中运行模型的能力等等

以下是有关PyTorch的两篇非常详细且易于理解的文章:

  • PyTorch简介 - 一个简单而强大的深度学习库(https://www.analyticsvidhya.com/blog/2018/02/pytorch-tutorial/)

  • PyTorch入门 - 了解如何构建快速准确的神经网络(4个案例研究!)(https://www.analyticsvidhya.com/blog/2019/01/guide-pytorch-neural-networks-case-studies/)

用于数据可解释性的Python库

你真的了解你的模型是如何工作的吗?你能解释为什么你的模型能够得出结果吗?这些是每个数据科学家应该能够回答的问题。构建黑盒模型在业界是没有用的。

所以,我已经提到了两个Python库,可以帮助您解释模型的性能。

/* LIME */LIME是一种算法(和库),可以解释任何分类器或回归量的预测。LIME如何做到这一点?通过一个可解释的模型来近似它。灵感来自“为什么我应该相信你?”:解释任何分类器的预测“,这个模型解释器可用于生成任何分类算法的解释器。

640?wx_fmt=png

安装LIME很简单:

 

pip install lime

 

  • 在机器学习模型中建立信任(在Python中使用LIME)(https://www.analyticsvidhya.com/blog/2017/06/building-trust-in-machine-learning-models/)

/* H2O */

H2O的无人驾驶AI提供简单的数据可视化技术,用于表示高度特征交互和非线性模型行为。它通过可视化提供机器学习可解释性(MLI),阐明建模结果和模型中特征的影响。

640?wx_fmt=png

通过以下链接阅读有关H2O的无人驾驶AI执行MLI的更多信息。

  • 机器学习可解释性

用于音频处理的Python库

音频处理或音频分析是指从音频信号中提取信息和含义以进行分析或分类或任何其他任务。它正在成为深度学习中的一种流行功能,所以要留意这一点。

/* LibROSA */

640?wx_fmt=png

单击此链接(https://librosa.github.io/librosa/install.html)以查看安装详细信息。

这是一篇关于音频处理及其工作原理的深入文章:

  • 使用深度学习开始使用音频数据分析(带案例研究)(https://www.analyticsvidhya.com/blog/2017/08/audio-voice-processing-deep-learning/)

/* Madmom */

您需要先安装以下库才能安装Madmom:

  • NumPy

  • SciPy

  • Cython

  • Mido

您需要以下软件包来测试安装是否成功:

  • PyTest

  • PyAudio

  • PyFftw

安装Madmom的代码:

 

pip install madmom

 

640?wx_fmt=png

我们甚至有一篇文章要了解Madmom如何用于音乐信息检索:

  • 学习音乐信息检索的音频节拍跟踪(使用Python代码)(https://www.analyticsvidhya.com/blog/2018/02/audio-beat-tracking-for-music-information-retrieval/)

/* pyAudioAnalysis */

pyAudioAnalysis是一个用于音频特征提取,分类和分段的Python库。它涵盖了广泛的音频分析任务,例如:

  • 对未知声音进行分类

  • 检测音频事件并排除长时间录音中的静音时段

  • 执行有监督和无监督的分割

  • 提取音频缩略图等等

 

您可以使用以下代码安装它:

 

pip install pyAudioAnalysis

 

640?wx_fmt=png

用于图像处理的Python库

如果您正在寻找数据科学行业的角色,您必须学习如何使用图像数据。随着组织能够收集越来越多的数据(主要得益于计算资源的进步),图像处理正变得无处不在。

因此,请确保您对以下三个Python库中的至少一个感到满意。

/* OpenCV-Python */谈到图像处理,OpenCV是我想到的第一个名字。OpenCV-Python是用于图像处理的Python API,它结合了OpenCV C ++ API和Python语言的最佳特性。

它主要用于解决计算机视觉问题。

OpenCV-Python使用了我们在上面看到的NumPy。所有OpenCV阵列结构都与NumPy数组进行转换。这也使得与使用NumPy的其他库(如SciPy和Matplotlib)集成更容易。

在您的系统中安装OpenCV-Python:

 

pip3 install opencv-python

 

以下是两个关于如何在Python中使用OpenCV的流行教程:

  • 使用深度学习从视频构建人脸检测模型(Python实现)(https://www.analyticsvidhya.com/blog/2018/12/introduction-face-detection-video-deep-learning-python/)

  • 16个OpenCV函数启动计算机视觉之旅(使用Python代码)(https://www.analyticsvidhya.com/blog/2019/03/opencv-functions-computer-vision-python/)

/* Scikit-image */

您可以使用它来执行图像分割,几何变换,色彩空间操作,分析,过滤,形态学,特征检测等等。

我们需要在安装scikit-image之前使用以下软件包:

  • Python(> = 3.5)

  • NumPy(> = 1.11.0)

  • SciPy(> = 0.17.0)

  • joblib(> = 0.11)

 

这就是你可以在你的机器上安装scikit-image的方法:

 

 

pip install -U scikit-learn

 

640?wx_fmt=png

/* Pillow */

Pillow提供了几种执行图像处理的标准程序:

  • 每像素操作

  • 掩蔽和透明处理

  • 图像过滤,例如模糊,轮廓,平滑或边缘查找

  • 图像增强,例如锐化,调整亮度,对比度或颜色

  • 向图像添加文字等等!

 

如何安装Pillow?这很简单:

 

 

pip install Pillow

 

查看以下AI漫画,了解Pillow在计算机视觉中的使用:

  • AI Comic:ZAIN - 问题#2:使用计算机视觉进行面部识别

 

用于数据库的Python库

学习如何从数据库存储,访问和检索数据是任何数据科学家必备的技能。你根本无法摆脱角色的这个方面。构建模型很棒但是如果不首先检索数据,你会怎么做?

我选择了两个与SQL相关的Python库,你可能会发现它们很有用。

/* psycopg */Psycopg是最受欢迎的PostgreSQL(一种用于Python编程语言的高级开源关系数据库)适配器。Psycopg的核心是完全实现Python DB API 2.0规范。

640?wx_fmt=png

目前的psycopg2实现支持:

  • Python版本2.7

  • Python 3版本从3.4到3.7

  • PostgreSQL服务器版本从7.4到11

  • 9.1的PostgreSQL客户端库版本

     

以下是如何安装psycopg2的方法:

 

 

pip install psycopg2

/* SQLAlchemy */

640?wx_fmt=png

它旨在实现高效,高性能的数据库访问。SQLAlchemy认为数据库是关系代数引擎,而不仅仅是表的集合。

要安装SQLAlchemy,您可以使用以下代码行:

 

pip install SQLAlchemy

 

用于部署的Python库

你知道什么型号的部署?如果没有,你应该尽快学习。部署模型意味着将最终模型放入最终应用程序(或技术上称为生产环境)。

/* Flask */Flask是一个用Python编写的Web框架,通常用于部署数据科学模型。Flask有两个组成部分:

  • Werkzeug:它是Python编程语言的实用程序库

  • Jinja:它是Python的模板引擎

 

查看下面的示例以打印“Hello world”:

 

  1.  
    from flask import Flask
  2.  
    app = Flask(__name__)
  3.  
     
  4.  
    @app.route("/")
  5.  
    def hello():
  6.  
    return "Hello World!"
  7.  
     
  8.  
    if __name__ == "__main__":
  9.  
    app.run()

 

以下文章是学习Flask的一个很好的起点:

  • In machine learning models will be deployed for the production of API tutorial (using Flask) (https://www.analyticsvidhya.com/blog/2017/09/machine-learning-models-as-apis-using-flask/)

End Notes

In this article, we saw a lot of python libraries, they often used during data science project. There are more libraries, but these data every scientist should be aware of the core library.

 

Guess you like

Origin www.cnblogs.com/aibabel/p/11549800.html