1. 程式人生 > 實用技巧 >060 Python必備庫-從資料處理到人工智慧

060 Python必備庫-從資料處理到人工智慧

目錄

一、概述

1.1 從資料處理到人工智慧

資料表示->資料清洗->資料統計->資料視覺化->資料探勘->人工智慧

  • 資料表示:採用合適方式用程式表達資料

  • 資料清理:資料歸一化、資料轉換、異常值處理

  • 資料統計:資料的概要理解,數量、分佈、中位數等

  • 資料視覺化:直觀展示資料內涵的方式

  • 資料探勘:從資料分析獲得知識,產生資料外的價值

  • 人工智慧:資料/語言/影象/視覺等方面深度分析與決策

  • Python庫之資料分析

  • Python庫之資料視覺化

  • Python庫之文字處理

  • Python庫之機器學習

二、Python庫之資料分析

2.1 numpy

Numpy: 表達N維陣列的最基礎庫,http://www.numpy.org

  • Python介面使用,C語言實現,計算速度優異
  • Python資料分析及科學計算的基礎庫,支撐Pandas等
  • 提供直接的矩陣運算、廣播函式、線性代數等功能
import numpy as np


def np_sum():
    a = np.array([0, 1, 2, 3, 4])
    b = np.array([9, 8, 7, 6, 5])

    c = a**2 + b**3

    return c


print(np_sum())
[729 513 347 225 141]
def py_sum():
    a = [0, 1, 2, 3, 4]
    b = [9, 8, 7, 6, 5]
    c = []

    for i in range(len(a)):
        c.append(a[i]**2
+ b[i]**3) return c print(py_sum())
[729, 513, 347, 225, 141]

2.2 pandas

Pandas: Python資料分析高層次應用庫,http://pandas.pydata.org

  • 提供了簡單易用的資料結構和資料分析工具

  • 理解資料型別與索引的關係,操作索引即操作資料

  • Python最主要的資料分析功能庫,基於Numpy開發

  • 能操作sql、json、pickle、csv、excel、ini等檔案

  • Series = 索引 + 一維資料

  • DataFrame = 行列索引 + 二維資料

2.3 scipy

SciPy: 數學、科學和工程計算功能庫,http://www.scipy.org

  • 提供了一批數學演算法及工程資料運算功能
  • 類似Matlab,可用於如傅立葉變換、訊號處理等應用
  • Python最主要的科學計算功能庫,基於Numpy開發

三、Python庫之資料視覺化

3.1 matplotlib

Matplotlib: 高質量的二維資料視覺化功能庫,http://matplotlib.org

  • 提供了超過100種資料視覺化展示效果
  • 通過matplotlib.pyplot子庫呼叫各視覺化效果
  • Python最主要的資料視覺化功能庫,基於Numpy開發

3.2 Seaborn

Seaborn: 統計類資料視覺化功能庫,http://seaborn.pydata.org/

  • 提供了一批高層次的統計類資料視覺化展示效果
  • 主要展示資料間分佈、分類和線性關係等內容
  • 基於Matplotlib開發,支援Numpy和Pandas

3.3 Mayavi

Mayavi:三維科學資料視覺化功能庫,http://docs.enthought.com/mayavi/mayavi/

  • 提供了一批簡單易用的3D科學計算資料視覺化展示效果
  • 目前版本是Mayavi2,三維視覺化最主要的第三方庫
  • 支援Numpy、TVTK、Traits、Envisage等第三方庫

四、Python庫之文字處理

4.1 PyPDF2

PyPDF2:用來處理pdf檔案的工具集,http://mstamy2.github.io/PyPDF2

  • 提供了一批處理PDF檔案的計算功能
  • 支援獲取資訊、分隔/整合檔案、加密解密等
  • 完全Python語言實現,不需要額外依賴,功能穩定
from PyPDF2 import PdfFileReader, PdfFileMerger

merger = PdfFileMerger()
input1 = open("document1.pdf", "rb")
input2 = open("document2.pdf", "rb")
merger.append(fileobj=input1, pages=(0, 3))
merger.merge(position=2, fileobj=input2, pages=(0, 1))
output = open("document-output.pdf", "wb")
merger.write(output)

4.2 NLTK

NLTK:自然語言文字處理第三方庫,http://www.nltk.org/

  • 提供了一批簡單易用的自然語言文字處理功能
  • 支援語言文字分類、標記、語法句法、語義分析等
  • 最優秀的Python自然語言處理庫
from nltk.corpus import treebank

t = treebank.parsed_sents('wsj_0001.mrg')[0]

t.draw()

4.3 Python-docx

Python-docx:建立或更新Microsoft Word檔案的第三方庫,http://python-docx.readthedocs.io/en/latest/index.html

  • 提供建立或更新.doc .docx等檔案的計算功能
  • 增加並配置段落、圖片、表格、文字等,功能全面
from docx import Document

document = Document()
document.add_heading('Document Title', 0)
p = document.add_paragraph('A plain paragraph having some ')
document.add_page_break()
document.save('demo.docx')

五、Python庫之機器學習

5.1 Scikit-learn

Scikit-learn:機器學習方法工具集,與資料處理相關的第三方庫,http://scikit-learn.org/

  • 提供一批統一化的機器學習方法功能介面
  • 提供聚類、分類、迴歸、強化學習等計算功能
  • 機器學習最基本且最優秀的Python第三方庫

5.2 TensorFlow

TensorFlow:AlphaGo背後的機器學習計算框架,https://www.tensorflow.org/

  • 谷歌公司推動的開源機器學習框架
  • 將資料流圖作為基礎,圖節點代表運算,邊代表張量
  • 應用機器學習方法的一種方式,支撐谷歌人工智慧應用
import tensorflow as tf
init = tf.global_variables_initializer()
sess = tf.Session()
sess.run(init)
res = sess.run(result)
print('result:', res)

5.3 MXNet

MXNet:基於神經網路的深度學習計算框架,https://mxnet.incubator.apache.org/

  • 提供可擴充套件的神經網路及深度學習計算功能
  • 可用於自動駕駛、機器翻譯、語音識別等眾多領域
  • Python最重要的深度學習計算框架

六、單元小結

6.1 從資料處理到人工智慧

  • Numpy、Pandas、SciPy
  • Matplotlib、Seaborn、Mayavi
  • PyPDF2、NLTK、python-docx
  • Scikit-learn、TensorFlow、MXNet