[TOC]html
1、概述
1.1 從數據處理到人工智能
數據表示->數據清洗->數據統計->數據可視化->數據挖掘->人工智能python
-
數據表示:採用合適方式用程序表達數據git
-
數據清理:數據歸一化、數據轉換、異常值處理github
-
數據統計:數據的概要理解,數量、分佈、中位數等算法
-
數據可視化:直觀展現數據內涵的方式sql
-
數據挖掘:從數據分析得到知識,產生數據外的價值apache
-
人工智能:數據/語言/圖像/視覺等方面深度分析與決策json
-
Python庫之數據分析數組
-
Python庫之數據可視化網絡
-
Python庫之文本處理
-
Python庫之機器學習
2、Python庫之數據分析
2.1 numpy
Numpy: 表達N維數組的最基礎庫,<a target='_blank' href='http://www.numpy.org'>http://www.numpy.org</a>
- 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數據分析高層次應用庫,<a target='_blank' href='http://pandas.pydata.org'>http://pandas.pydata.org</a>
-
提供了簡單易用的數據結構和數據分析工具
-
理解數據類型與索引的關係,操做索引即操做數據
-
Python最主要的數據分析功能庫,基於Numpy開發
-
能操做sql、json、pickle、csv、excel、ini等文件
-
Series = 索引 + 一維數據
-
DataFrame = 行列索引 + 二維數據
2.3 scipy
SciPy: 數學、科學和工程計算功能庫,<a target='_blank' href='http://www.scipy.org'>http://www.scipy.org</a>
- 提供了一批數學算法及工程數據運算功能
- 相似Matlab,可用於如傅里葉變換、信號處理等應用
- Python最主要的科學計算功能庫,基於Numpy開發
3、Python庫之數據可視化
3.1 matplotlib
Matplotlib: 高質量的二維數據可視化功能庫,<a target='_blank' href='http://matplotlib.org'>http://matplotlib.org</a>
- 提供了超過100種數據可視化展現效果
- 經過matplotlib.pyplot子庫調用各可視化效果
- Python最主要的數據可視化功能庫,基於Numpy開發
3.2 Seaborn
Seaborn: 統計類數據可視化功能庫,<a target='_blank' href='http://seaborn.pydata.org/'>http://seaborn.pydata.org/</a>
- 提供了一批高層次的統計類數據可視化展現效果
- 主要展現數據間分佈、分類和線性關係等內容
- 基於Matplotlib開發,支持Numpy和Pandas
3.3 Mayavi
Mayavi:三維科學數據可視化功能庫,<a target='_blank' href='http://docs.enthought.com/mayavi/mayavi/'>http://docs.enthought.com/mayavi/mayavi/</a>
- 提供了一批簡單易用的3D科學計算數據可視化展現效果
- 目前版本是Mayavi2,三維可視化最主要的第三方庫
- 支持Numpy、TVTK、Traits、Envisage等第三方庫
4、Python庫之文本處理
4.1 PyPDF2
PyPDF2:用來處理pdf文件的工具集,<a target='_blank' href='http://mstamy2.github.io/PyPDF2'>http://mstamy2.github.io/PyPDF2</a>
- 提供了一批處理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:天然語言文本處理第三方庫,<a target='_blank' href='http://www.nltk.org/'>http://www.nltk.org/</a>
- 提供了一批簡單易用的天然語言文本處理功能
- 支持語言文本分類、標記、語法句法、語義分析等
- 最優秀的Python天然語言處理庫
from nltk.corpus import treebank t = treebank.parsed_sents('wsj_0001.mrg')[0] t.draw()
4.3 Python-docx
Python-docx:建立或更新Microsoft Word文件的第三方庫,<a target='_blank' href='http://python-docx.readthedocs.io/en/latest/index.html'>http://python-docx.readthedocs.io/en/latest/index.html</a>
- 提供建立或更新.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')
5、Python庫之機器學習
5.1 Scikit-learn
Scikit-learn:機器學習方法工具集,與數據處理相關的第三方庫,<a target='_blank' href='http://scikit-learn.org/'>http://scikit-learn.org/</a>
- 提供一批統一化的機器學習方法功能接口
- 提供聚類、分類、迴歸、強化學習等計算功能
- 機器學習最基本且最優秀的Python第三方庫
5.2 TensorFlow
TensorFlow:AlphaGo背後的機器學習計算框架,<a target='_blank' href='https://www.tensorflow.org/'>https://www.tensorflow.org/</a>
- 谷歌公司推進的開源機器學習框架
- 將數據流圖做爲基礎,圖節點表明運算,邊表明張量
- 應用機器學習方法的一種方式,支撐谷歌人工智能應用
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:基於神經網絡的深度學習計算框架,<a target='_blank' href='https://mxnet.incubator.apache.org/'>https://mxnet.incubator.apache.org/</a>
- 提供可擴展的神經網絡及深度學習計算功能
- 可用於自動駕駛、機器翻譯、語音識別等衆多領域
- Python最重要的深度學習計算框架
6、單元小結
6.1 從數據處理到人工智能
- Numpy、Pandas、SciPy
- Matplotlib、Seaborn、Mayavi
- PyPDF二、NLTK、python-docx
- Scikit-learn、TensorFlow、MXNet