python(Mooc)--python計算生態概覽

一.從數據處理到人工智能

1.1 python庫之數據分析

Numpy:表達N維數組的最基礎庫

  • Python接口使用,C語言實現,計算速度優異
  • Python數據分析及科學計算的基礎庫,支撐Pandas等
  • 提供直接的矩陣運算、廣播函數、線性代數等功能
    在這裏插入圖片描述

Pandas: Python數據分析高層次應用庫

  • 提供了簡單易用的數據結構和數據分析工具
  • 理解數據類型與索引的關係,操作索引即操作數據
  • Python最主要的數據分析功能庫,基於Numpy開發
    在這裏插入圖片描述

SciPy: 數學、科學和工程計算功能庫

  • 提供了一批數學算法及工程數據運算功能
  • 類似Matlab,可用於如傅里葉變換、信號處理等應用
  • Python最主要的科學計算功能庫,基於Numpy開發
    在這裏插入圖片描述

1.2 python庫之數據可視化

Matplotlib: 高質量的二維數據可視化功能庫

  • 提供了超過100種數據可視化展示效果
  • 通過matplotlib.pyplot子庫調用各可視化效果
  • Python最主要的數據可視化功能庫,基於Numpy開發
    在這裏插入圖片描述

Seaborn: 統計類數據可視化功能庫

  • 提供了一批高層次的統計類數據可視化展示效果
  • 主要展示數據間分佈、分類和線性關係等內容
  • 基於Matplotlib開發,支持Numpy和Pandas
    在這裏插入圖片描述

Mayavi:三維科學數據可視化功能庫

  • 提供了一批簡單易用的3D科學計算數據可視化展示效果
  • 目前版本是Mayavi2,三維可視化最主要的第三方庫
  • 支持Numpy、TVTK、Traits、Envisage等第三方庫
    在這裏插入圖片描述

1.3 python庫之文本處理

PyPDF2:用來處理pdf文件的工具集

  • 提供了一批處理PDF文件的計算功能
  • 支持獲取信息、分隔/整合文件、加密解密等
  • 完全Python語言實現,不需要額外依賴,功能穩定
    在這裏插入圖片描述

NLTK:自然語言文本處理第三方庫

  • 提供了一批簡單易用的自然語言文本處理功能
  • 支持語言文本分類、標記、語法句法、語義分析等
  • 最優秀的Python自然語言處理庫
    在這裏插入圖片描述

Python-docx:創建或更新Microsoft Word文件的第三方庫

  • 提供創建或更新.doc .docx等文件的計算功能
  • 增加並配置段落、圖片、表格、文字等,功能全面
    在這裏插入圖片描述

1.4 python庫之機器學習

Scikit-learn:機器學習方法工具集

  • 提供一批統一化的機器學習方法功能接口
  • 提供聚類、分類、迴歸、強化學習等計算功能
  • 機器學習最基本且最優秀的Python第三方庫
    在這裏插入圖片描述

TensorFlow:AlphaGo背後的機器學習計算框架

  • 谷歌公司推動的開源機器學習框架
  • 將數據流圖作爲基礎,圖節點代表運算,邊代表張量
  • 應用機器學習方法的一種方式,支撐谷歌人工智能應用
    在這裏插入圖片描述

MXNet:基於神經網絡的深度學習計算框架

  • 提供可擴展的神經網絡及深度學習計算功能
  • 可用於自動駕駛、機器翻譯、語音識別等衆多領域
  • Python最重要的深度學習計算框架
    在這裏插入圖片描述

二.實例:霍蘭格人格分析雷達圖實例

  • 需求:雷達圖方式驗證霍蘭德人格分析
  • 輸入:各職業人羣結合興趣的調研數據
  • 輸出:雷達圖
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['font.family']='SimHei'
radar_labels = np.array(['研究型(I)','藝術型(A)','社會型(S)',\
                         '企業型(E)','常規型(C)','現實型(R)']) #雷達標籤
nAttr = 6
data = np.array([[0.40, 0.32, 0.35, 0.30, 0.30, 0.88],
                 [0.85, 0.35, 0.30, 0.40, 0.40, 0.30],
                 [0.43, 0.89, 0.30, 0.28, 0.22, 0.30],
                 [0.30, 0.25, 0.48, 0.85, 0.45, 0.40],
                 [0.20, 0.38, 0.87, 0.45, 0.32, 0.28],
                 [0.34, 0.31, 0.38, 0.40, 0.92, 0.28]]) #數據值
data_labels = ('藝術家', '實驗員', '工程師', '推銷員', '社會工作者','記事員')
angles = np.linspace(0, 2*np.pi, nAttr, endpoint=False)
data = np.concatenate((data, [data[0]]))
angles = np.concatenate((angles, [angles[0]]))
fig = plt.figure(facecolor="white")
plt.subplot(111, polar=True)
plt.plot(angles,data,'o-', linewidth=1, alpha=0.2)
plt.fill(angles,data, alpha=0.25)
plt.thetagrids(angles*180/np.pi, radar_labels,frac = 1.2)
plt.figtext(0.52, 0.95, '霍蘭德人格分析', ha='center', size=20)
legend = plt.legend(data_labels, loc=(0.94, 0.80), labelspacing=0.1)
plt.setp(legend.get_texts(), fontsize='large')
plt.grid(True)
plt.savefig('holland_radar.jpg')
plt.show()

運行效果:
在這裏插入圖片描述

三.從web解析到網絡空間

3.1 python庫之網絡爬蟲

Requests: 最友好的網絡爬蟲功能庫

  • 提供了簡單易用的類HTTP協議網絡爬蟲功能
  • 支持連接池、SSL、Cookies、HTTP(S)代理等
  • Python最主要的頁面級網絡爬蟲功能庫
    在這裏插入圖片描述

Scrapy: 優秀的網絡爬蟲框架

  • 提供了構建網絡爬蟲系統的框架功能,功能半成品
  • 支持批量和定時網頁爬取、提供數據處理流程等
  • Python最主要且最專業的網絡爬蟲框架
    在這裏插入圖片描述

pyspider: 強大的Web頁面爬取系統

  • 提供了完整的網頁爬取系統構建功能
  • 支持數據庫後端、消息隊列、優先級、分佈式架構等
  • Python重要的網絡爬蟲類第三方庫
    在這裏插入圖片描述

3.2 python庫之web信息提取

Beautiful Soup: HTML和XML的解析庫

  • 提供瞭解析HTML和XML等Web信息的功能
  • 又名beautifulsoup4或bs4,可以加載多種解析引擎
  • 常與網絡爬蟲庫搭配使用,如Scrapy、requests等
    在這裏插入圖片描述

Re: 正則表達式解析和處理功能庫

  • 提供了定義和解析正則表達式的一批通用功能
  • 可用於各類場景,包括定點的Web信息提取
  • Python最主要的標準庫之一,無需安裝
    在這裏插入圖片描述

Python-Goose: 提取文章類型Web頁面的功能庫

  • 提供了對Web頁面中文章信息/視頻等元數據的提取功能
  • 針對特定類型Web頁面,應用覆蓋面較廣
  • Python最主要的Web信息提取庫
    在這裏插入圖片描述

3.3 python庫之web網站開發

Django: 最流行的Web應用框架

  • 提供了構建Web系統的基本應用框架
  • MTV模式:模型(model)、模板(Template)、視圖(Views)
  • Python最重要的Web應用框架,略微複雜的應用框架
    在這裏插入圖片描述

Pyramid: 規模適中的Web應用框架

  • 提供了簡單方便構建Web系統的應用框架
  • 不大不小,規模適中,適合快速構建並適度擴展類應用
  • Python產品級Web應用框架,起步簡單可擴展性好
    在這裏插入圖片描述

Flask: Web應用開發微框架

  • 提供了最簡單構建Web系統的應用框架
  • 特點是:簡單、規模小、快速
  • Django > Pyramid > Flask
    在這裏插入圖片描述

3.4 python庫之網絡應用開發

WeRoBot: 微信公衆號開發框架

  • 提供瞭解析微信服務器消息及反饋消息的功能
  • 建立微信機器人的重要技術手段
    在這裏插入圖片描述

aip: 百度AI開放平臺接口

  • 提供了訪問百度AI服務的Python功能接口
  • 語音、人臉、OCR、NLP、知識圖譜、圖像搜索等領域
  • Python百度AI應用的最主要方式
    在這裏插入圖片描述

MyQR: 二維碼生成第三方庫

  • 提供了生成二維碼的系列功能
  • 基本二維碼、藝術二維碼和動態二維碼
    在這裏插入圖片描述

四.從人機交互到藝術設計

4.1 python庫之圖形用戶界面

PyQt5: Qt開發框架的Python接口

  • 提供了創建Qt5程序的Python API接口
  • Qt是非常成熟的跨平臺桌面應用開發系統,完備GUI
  • 推薦的Python GUI開發第三方庫
    在這裏插入圖片描述

wxPython: 跨平臺GUI開發框架

  • 提供了專用於Python的跨平臺GUI開發框架
  • 理解數據類型與索引的關係,操作索引即操作數據
  • Python最主要的數據分析功能庫,基於Numpy開發
    在這裏插入圖片描述

PyGObject: 使用GTK+開發GUI的功能庫

  • 提供了整合GTK+、WebKitGTK+等庫的功能
  • GTK+:跨平臺的一種用戶圖形界面GUI框架
  • 實例:Anaconda採用該庫構建GUI
    在這裏插入圖片描述

4.2 python庫之遊戲開發

PyGame: 簡單的遊戲開發功能庫

  • 提供了基於SDL的簡單遊戲開發功能及實現引擎
  • 理解遊戲對外部輸入的響應機制及角色構建和交互機制
  • Python遊戲入門最主要的第三方庫
    在這裏插入圖片描述

Panda3D: 開源、跨平臺的3D渲染和遊戲開發庫

  • 一個3D遊戲引擎,提供Python和C++兩種接口
  • 支持很多先進特性:法線貼圖、光澤貼圖、卡通渲染等
  • 由迪士尼和卡尼基梅隆大學共同開發
    在這裏插入圖片描述

cocos2d: 構建2D遊戲和圖形界面交互式應用的框架

  • 提供了基於OpenGL的遊戲開發圖形渲染功能
  • 支持GPU加速,採用樹形結構分層管理遊戲對象類型
  • 適用於2D專業級遊戲開發
    在這裏插入圖片描述

4.3 python庫之虛擬現實

VR Zero: 在樹莓派上開發VR應用的Python庫

  • 提供大量與VR開發相關的功能
  • 針對樹莓派的VR開發庫,支持設備小型化,配置簡單化
  • 非常適合初學者實踐VR開發及應用
    在這裏插入圖片描述

pyovr: Oculus Rift的Python開發接口

  • 針對Oculus VR設備的Python開發庫
  • 基於成熟的VR設備,提供全套文檔,工業級應用設備
  • Python+虛擬現實領域探索的一種思路
    在這裏插入圖片描述

Vizard: 基於Python的通用VR開發引擎

  • 專業的企業級虛擬現實開發引擎
  • 提供詳細的官方文檔
  • 支持多種主流的VR硬件設備,具有一定通用性
    在這裏插入圖片描述

4.4 python庫之圖形藝術

Quads: 迭代的藝術

  • 對圖片進行四分迭代,形成像素風
  • 可以生成動圖或靜圖圖像
  • 簡單易用,具有很高展示度
    在這裏插入圖片描述

ascii_art: ASCII藝術庫

  • 將普通圖片轉爲ASCII藝術風格
  • 輸出可以是純文本或彩色文本
  • 可採用圖片格式輸出
    在這裏插入圖片描述

turtle: 海龜繪圖體系

在這裏插入圖片描述

五.實例:玫瑰花繪製

import turtle as t
# 定義一個曲線繪製函數
def DegreeCurve(n, r, d=1):
    for i in range(n):
        t.left(d)
        t.circle(r, abs(d))
# 初始位置設定
s = 0.2 # size
t.setup(450*5*s, 750*5*s)
t.pencolor("black")
t.fillcolor("red")
t.speed(100)
t.penup()
t.goto(0, 900*s)
t.pendown()
# 繪製花朵形狀
t.begin_fill()
t.circle(200*s,30)
DegreeCurve(60, 50*s)
t.circle(200*s,30)
DegreeCurve(4, 100*s)
t.circle(200*s,50)
DegreeCurve(50, 50*s)
t.circle(350*s,65)
DegreeCurve(40, 70*s)
t.circle(150*s,50)
DegreeCurve(20, 50*s, -1)
t.circle(400*s,60)
DegreeCurve(18, 50*s)
t.fd(250*s)
t.right(150)
t.circle(-500*s,12)
t.left(140)
t.circle(550*s,110)
t.left(27)
t.circle(650*s,100)
t.left(130)
t.circle(-300*s,20)
t.right(123)
t.circle(220*s,57)
t.end_fill()
# 繪製花枝形狀
t.left(120)
t.fd(280*s)
t.left(115)
t.circle(300*s,33)
t.left(180)
t.circle(-300*s,33)
DegreeCurve(70, 225*s, -1)
t.circle(350*s,104)
t.left(90)
t.circle(200*s,105)
t.circle(-500*s,63)
t.penup()
t.goto(170*s,-30*s)
t.pendown()
t.left(160)
DegreeCurve(20, 2500*s)
DegreeCurve(220, 250*s, -1)
# 繪製一個綠色葉子
t.fillcolor('green')
t.penup()
t.goto(670*s,-180*s)
t.pendown()
t.right(140)
t.begin_fill()
t.circle(300*s,120)
t.left(60)
t.circle(300*s,120)
t.end_fill()
t.penup()
t.goto(180*s,-550*s)
t.pendown()
t.right(85)
t.circle(600*s,40)
# 繪製另一個綠色葉子
t.penup()
t.goto(-150*s,-1000*s)
t.pendown()
t.begin_fill()
t.rt(120)
t.circle(300*s,115)
t.left(75)
t.circle(300*s,100)
t.end_fill()
t.penup()
t.goto(430*s,-1070*s)
t.pendown()
t.right(30)
t.circle(-600*s,35)
t.done()

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章