




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第二版第12章Python計算生態(tài)本章要點:12.1Python標準庫12.2第三方庫和PyPI12.3Python科學計算環(huán)境12.4科學計算和數(shù)據(jù)處理12.5文本處理與分析12.6數(shù)據(jù)可視化12.7網(wǎng)絡爬蟲和Web信息提取12.8機器學習和深度學習12.9圖形用戶界面12.10圖形和圖像處理12.11Web開發(fā)12.12游戲開發(fā)12.13其他第三方庫Python計算生態(tài)的強大之處在于其計算生態(tài)環(huán)境(Ecosystem),提供了解決不同領域的包,例如網(wǎng)絡爬蟲、數(shù)據(jù)分析、文本處理、數(shù)據(jù)可視化、用戶圖形界面、人工智能、機器學習、Web開發(fā)、游戲開發(fā)等。開源程序的理念就是DRY(Don’tRepeatYourself)。使用Python社區(qū)中不同領域的專家提供的解決專業(yè)問題的第三包,不僅可以提高程序開發(fā)效率,而且還能夠提高程序開發(fā)質(zhì)量Python計算生態(tài)12.1Python標準庫Python標準安裝包中包含一部分常用的庫,被稱為Python標準庫文本處理相關模塊string:常見的字符串操作,包括字符串常量、格式化字符、輔助函數(shù)re:正則表達式操作,包括處理正則表達式的對象和函數(shù)difflib:計算差異的輔助工具textwrap:文本自動換行與填充unicodedata:Unicode數(shù)據(jù)庫stringprep:因特網(wǎng)字符串預備readline:GNUreadline接口rlcompleter:GNU
readline的補全函數(shù)二進制數(shù)據(jù)服務模塊標準庫中提供了一些操作二進制數(shù)據(jù)的基本模塊。有關二進制數(shù)據(jù)的其他操作,請參見與文件格式和網(wǎng)絡協(xié)議有關的標準庫。二進制數(shù)據(jù)服務的主要模塊如下。struct:將字節(jié)串解讀為打包的二進制數(shù)據(jù)。codecs:編解碼器注冊和相關基類數(shù)據(jù)結構相關模塊Python語言除了提供豐富的內(nèi)置數(shù)據(jù)結構類型(dict、list、set、frozenset、tuple、str、bytes、bytearray),還通過標準庫提供了許多專門的數(shù)據(jù)類型,例如日期和時間、固定類型的數(shù)組、堆隊列、雙端隊列以及枚舉等。數(shù)據(jù)結構相關的主要模塊如下。datetime:基本的日期和時間類型。calendar:日歷相關函數(shù)。collections:容器數(shù)據(jù)類型。collections.abc:容器的抽象基類。heapq:堆隊列算法。bisect:數(shù)組二分查找算法。array:高效的數(shù)值數(shù)組。weakref:弱引用。types:動態(tài)類型創(chuàng)建和內(nèi)置類型名稱。copy:淺層(shallow)和深層(deep)復制操作。pprint:數(shù)據(jù)美化輸出。reprlib:另一種repr()實現(xiàn)。enum:對枚舉的支持數(shù)值計算相關模塊Python標準庫中提供與數(shù)值計算相關的模塊。numbers模塊定義了數(shù)字類型的抽象層次結構。math和cmath模塊包含浮點數(shù)和復數(shù)的各種數(shù)學函數(shù)。decimal模塊支持使用任意精度算術的十進制數(shù)的精確表示。數(shù)值計算相關的主要模塊如下。numbers:數(shù)字的抽象基類。math:數(shù)學函數(shù)。cmath:關于復數(shù)的數(shù)學函數(shù)。decimal:十進制定點和浮點運算。fractions:分數(shù)及其運算。random:生成偽隨機數(shù)。statistics:數(shù)學統(tǒng)計函數(shù)函數(shù)式編程模塊Python語言支持函數(shù)式編程范式。標準庫中提供了相關模塊以及函數(shù)和類,以支持函數(shù)式編程風格以及在可調(diào)用對象上的通用操作。函數(shù)式編程相關的主要模塊如下:itertools:為高效循環(huán)而創(chuàng)建迭代器的函數(shù)。functools:高階函數(shù)和可調(diào)用對象上的操作。operator:標準運算符替代函數(shù)文件和目錄訪問相關模塊Python標準庫提供了處理磁盤文件和目錄的模塊,以可移植的方式操作路徑以及創(chuàng)建臨時文件。文件和目錄訪問相關的主要模塊如下。pathlib:面向?qū)ο蟮奈募到y(tǒng)路徑。os.path:常用路徑操作。fileinput:迭代來自多個輸入流的行。stat:解析stat()結果。filecmp:文件及目錄的比較。tempfile:生成臨時文件和目錄。glob:Unix風格路徑名模式擴展。fnmatch:Unix文件名模式匹配。linecache:隨機讀寫文本行。shutil:高階文件操作數(shù)據(jù)持久化模塊Python標準庫中提供了支持在磁盤上以持久形式存儲Python數(shù)據(jù)的模塊。pickle和marshal模塊可以將Python數(shù)據(jù)類型轉(zhuǎn)換為字節(jié)流,然后從字節(jié)中重新創(chuàng)建對象。各種與DBM相關的模塊支持一系列基于散列的文件格式,這些格式存儲字符串到其他字符串的映射。數(shù)據(jù)持久化相關的主要模塊如下。pickle:Python對象序列化。copyreg:注冊配合pickle模塊使用的函數(shù)。shelve:Python對象持久化。marshal:內(nèi)部Python對象序列化。dbm:Unix數(shù)據(jù)庫接口。sqlite3:SQLite數(shù)據(jù)庫DB-API2.0接口模塊數(shù)據(jù)壓縮和存檔相關模塊Python標準庫中提供了模塊支持zlib、gzip、bzip2和lzma數(shù)據(jù)壓縮算法,以及創(chuàng)建ZIP和tar格式的歸檔文件的模塊。數(shù)據(jù)壓縮和存檔包含如下相關的主要模塊。zlib:與gzip兼容的壓縮。gzip:對gzip格式的支持。bz2:對bzip2壓縮算法的支持。lzma:使用LZMA算法壓縮。zipfile:使用ZIP存檔。tarfile:讀寫tar歸檔文件文件格式相關模塊Python標準庫中包含如下解析不同文件格式的主要模塊。csv:CSV文件讀寫。configparser:配置文件解析器。netrc:netrc文件處理。xdrlib:編碼與解碼XDR數(shù)據(jù)。plistlib:生成與解析MacOSX.plist文件加密服務相關模塊Python標準庫中包含如下實現(xiàn)各種加密算法的主要模塊。hashlib:安全哈希與消息摘要。hmac:基于密鑰的消息驗證。secrets:生成安全隨機數(shù)字用于管理密碼通用操作系統(tǒng)服務相關模塊os:多種操作系統(tǒng)接口。io:處理流的核心工具。time:時間的訪問和轉(zhuǎn)換。argparse:命令行選項、參數(shù)和子命令解析器。getopt:C風格的命令行選項解析器。logging:日志記錄工具。logging.config:日志記錄配置。logging.handlers:日志處理。getpass:便攜式密碼輸入工具。curses:終端字符單元顯示的處理。curses.textpad:curses程序的文本輸入小部件。curses.ascii:ASCII字符實用工具。curses.panel:curses的面板擴展。platform:獲取底層平臺的標識數(shù)據(jù)。errno:標準errno系統(tǒng)符號。ctypes:Python的外部函數(shù)庫并發(fā)計算相關模塊threading:基于線程的并行。multiprocessing:基于進程的并行。multiprocessing.shared_memory:可以從進程直接訪問的共享內(nèi)存。concurrent:并行任務。concurrent.futures:啟動并行任務。subprocess:子進程管理。sched:事件調(diào)度器。queue:一個同步的隊列類。_thread:底層多線程API。_dummy_thread:_thread的替代模塊。dummy_threading:可以直接替代threading模塊上下文變量(contextvars)模塊Python標準庫提供了相關API用于管理、存儲和訪問上下文相關狀態(tài)的模塊contextvars,用于上下文變量管理網(wǎng)絡和進程間通信相關模塊asyncio:異步I/O。socket:底層網(wǎng)絡接口。ssl:套接字對象的TLS/SSL封裝。select:等待I/O完成。selectors:高級I/O復用庫。asyncore:異步socket處理器。asynchat:異步socket指令/響應處理器signal:設置異步事件處理程序。mmap:內(nèi)存映射文件支持imaplib:IMAP4協(xié)議客戶端。nntplib:NNTP協(xié)議客戶端。smtplib:SMTP協(xié)議客戶端。smtpd:SMTP服務器。telnetlib:Telnet客戶端。uuid:基于RFC4122的UUID對象。socketserver:一種網(wǎng)絡服務器框架。http.server:HTTP服務器。http.cookies:HTTP狀態(tài)管理。http.cookiejar:HTTP客戶端的Cookie處理xmlrpc:XMLRPC服務端與客戶端模塊。xmlrpc.client:XML-RPC客戶端訪問。xmlrpc.server:基本XML-RPC服務器。ipaddress:IPv4/IPv6操作庫?;ヂ?lián)網(wǎng)數(shù)據(jù)處理相關模塊email:電子郵件與MIME處理包。json:JSON編碼和解碼器。mailcap:Mailcap文件處理。mailbox:操作各種格式的電子郵箱。mimetypes:映射文件名到MIME類型。base64:Base16、Base32、Base64、Base85數(shù)據(jù)編碼。binhex:對binhex4文件進行編碼和解碼。binascii:二進制和ASCII碼互轉(zhuǎn)。quopri:編碼與解碼經(jīng)過MIME轉(zhuǎn)碼的可打印數(shù)據(jù)。uu:對uuencode文件進行編碼與解碼結構化標記處理相關模塊Python標準庫提供了如下處理各種形式的結構化數(shù)據(jù)標記的模塊,包括標準通用標記語言(SGML)、超文本標記語言(HTML)以及可擴展標記語言(XML)的接口。html:超文本標記語言支持,包含子模塊html.parser和html.entitiesxml:擴展標記語言支持,包括子模塊xml.etree.ElementTree、xml.dom、xml.dom.minidom、xml.dom.pulldom、xml.sax、xml.sax.handler、xml.sax.saxutils、xml.sax.xmlreader、xml.parsers.expat互聯(lián)網(wǎng)協(xié)議和支持相關模塊webbrowser:Web瀏覽器控制器。cgi:公共網(wǎng)關接口支持。cgitb:用于CGI腳本的回溯管理器。wsgiref:WSGI實用工具和參考實現(xiàn)。urllib:URL處理模塊。urllib.request:用于打開URL的可擴展庫urllib.response:urllib使用的Response類urllib.parse:將URL解析為組件urllib.error:urllib.request引發(fā)的異常類urllib.robotparser:robots.txt語法分析程序http:HTTP模塊http.client:HTTP協(xié)議客戶端ftplib:FTP協(xié)議客戶端poplib:POP3協(xié)議客戶端多媒體服務相關模塊audioop:處理原始音頻數(shù)據(jù)。aifc:讀取和寫入AIFF和AIFC文件。sunau:讀寫SunAU文件。wave:讀寫WAV格式文件。chunk:讀取IFF分塊數(shù)據(jù)。colorsys:顏色系統(tǒng)間的轉(zhuǎn)換。imghdr:推測圖像類型。sndhdr:推測聲音文件的類型。ossaudiodev:訪問OSS兼容的音頻設備1國際化相關模塊gettext:多語種國際化服務。locale:國際化服務程序框架相關模塊turtle:海龜繪圖。cmd:支持面向行的命令解釋器。shlex:簡單詞法分析Tk圖形用戶界面(GUI)相關模塊tkinter:Tcl/Tk的Python接口。tkinter.ttk:Tk主題小部件。tkinter.tix:Tk擴展組件。tkinter.scrolledtext:滾動文字控件。IDLE:集成開發(fā)環(huán)境開發(fā)工具相關模塊typing:類型標注支持。pydoc:文檔生成器和在線幫助系統(tǒng)。doctest:測試交互性的Python示例。unittest:單元測試框架。unittest.mock:模擬對象庫。2to3:自動將Python2代碼轉(zhuǎn)為Python3代碼。test:Python回歸測試包。test.support:Python測試套件的實用程序。test.support.script_helper:Python執(zhí)行測試的實用程序調(diào)試和性能分析相關模塊bdb:調(diào)試框架。faulthandler:轉(zhuǎn)儲Python回溯。pdb:Python的調(diào)試器。timeit:測量小代碼片段的執(zhí)行時間。trace:跟蹤Python語句執(zhí)行。tracemalloc:跟蹤內(nèi)存分配。軟件打包和分發(fā)相關模塊distutils:構建和安裝Python模塊。ensurepip:引導pip安裝程序。venv:創(chuàng)建虛擬環(huán)境。zipapp:管理可執(zhí)行Python歸檔文件Python運行時服務相關模塊sys:系統(tǒng)相關的參數(shù)和函數(shù)。sysconfig:提供對Python配置信息的訪問。builtins:內(nèi)建對象。__main__:頂層腳本環(huán)境。warnings:警告控制。dataclasses:數(shù)據(jù)類。contextlib:為with語句上下文提供的工具。abc:抽象基類。atexit:退出處理器。traceback:打印或檢索堆棧回溯。__future__:Future語句定義。gc:垃圾回收器接口。inspect:檢查對象。site:指定域的配置鉤子。自定義Python解釋器模塊code:解釋器基類。codeop:編譯Python代碼導入模塊的相關模塊zipimport:從Zip存檔中導入模塊。pkgutil:包擴展工具。modulefinder:查找腳本使用的模塊。runpy:定位和執(zhí)行Python模塊。importlib:import的實現(xiàn)Python語言服務相關模塊parser:訪問Python解析樹。ast:抽象語法樹。symtable:訪問編譯器的符號表。symbol:與Python解析樹一起使用的常量。token:與Python解析樹一起使用的常量。keyword:檢驗Python關鍵字。tokenize:對Python代碼使用的標記解析器。tabnanny:模糊縮進檢測。pyclbr:Python模塊瀏覽器支持。py_compile:編譯Python源文件。compileall:字節(jié)編譯Python庫。dis:Python字節(jié)碼反匯編器。pickletools:pickle開發(fā)者工具集。Windows系統(tǒng)相關模塊msvcrt:來自MSVC++運行時的有用例程。02winsound:Windows聲音播放界面04msilib:讀寫Microsoft安裝文件。01winreg:Windows注冊表訪問。03Unix專有服務模塊tty:終端控制功能。pty:偽終端工具。fcntl:fcntl和ioctl系統(tǒng)調(diào)用pipes:終端管道接口。resource:資源使用信息。nis:Sun的NIS(黃頁)接口syslog:Unixsyslog庫例程posix:最常見的POSIX系統(tǒng)調(diào)用pwd:用戶密碼數(shù)據(jù)庫spwd:影子密碼數(shù)據(jù)庫grp:組數(shù)據(jù)庫crypt:檢查Unix密碼的函數(shù)termios:POSIX風格的tty控制12.2第三方庫和PyPIPyPI官網(wǎng)PyPI(PythonPackageIndex)是Python提供的第三方庫索引官方網(wǎng)站,其網(wǎng)址為“/”。PyPI列出了數(shù)量眾多的第三方庫的基本信息下載并安裝第三方庫第三方庫的編譯版本一般后綴為.whl,即wheel(輪子)的意思。把Python庫比作輪子,使用Python語言編寫程序的設計理念是不要自己造輪子,而是使用相關領域?qū)<姨峁┑妮喿樱◣欤纠?2.1】下載和安裝Twisted庫的編譯版本(1)打開下載網(wǎng)址“/simple/twisted/”,根據(jù)所安裝的Python對應版本下載安裝相應的whl文件到本地文件夾。例如,C:\tmp\twisted-23.8.0-py3-none-any.whl。(2)在Windows命令行提示符下運行如下命令行命令,以安裝Twisted庫。C:\WINDOWS\system32>pipinstallC:\tmp\twisted-23.8.0-py3-none-any.whl12.3Python科學計算環(huán)境常用的Python科學計算包包括Anaconda、WinPython、Python(x,y)、Canopy等Anaconda是Python的一個開源發(fā)行版本,主要面向科學計算。Anaconda附帶了conda(包管理器)、Python和150多個科學包及其依賴項。使用Anaconda,無需花費大量時間安裝眾多的第三方Python包,用戶就可以立即開始處理數(shù)據(jù)。【例12.2】下載和安裝Anaconda應用程序:/download/)安裝Anaconda后,就相當于安裝了Python、IPython、集成開發(fā)環(huán)境Spyder、JupyterNotebook以及一些常用的科學計算包WinPython是基于Windows平臺的Python的一個開源發(fā)行版本,主要面向教育科學計算。集成的WinPython軟件包管理器(WPPM)有助于安裝、卸載或升級Python軟件包WinPython實際上是整合了IDE工具Spyder和一些科學計算包,默認包含了numpy、scipy、matplotlib、sklearn等工具包,完全可以替代MATLAB進行科學計算Python(x,y)是一個免費的科學和工程開發(fā)包,提供了數(shù)學計算、數(shù)據(jù)分析和可視化展示等功能,包括QT圖形用戶界面和Spyder集成交互開發(fā)環(huán)境使用IPython進行交互式科學計算IPython是一個基于PythonShell的交互式解釋器,比默認Shell增加了強大的編輯和交互功能,主要包括Tab鍵自動補全、獲得對象信息、調(diào)用系統(tǒng)Shell命令、歷史記錄等。IPython還提供了功能強大、內(nèi)建的Magic函數(shù),即任何第一個字母為%的行視為Magic函數(shù)的特殊調(diào)用,都可以控制IPython,為其增加許多系統(tǒng)功能。【例12.3】IPython使用示例使用%timeit命令快速測量代碼運行時間In[6]:%timeitsum(range(1000000))使用%run命令運行腳本In[7]:%runc:\pythonpa\ch01\bigint.py使用%pylab進行交互式計算In[8]:%pylabIn[9]:x=linespace(-10,10,1000)In[10]:plot(x,sin(x))使用集成開發(fā)環(huán)境Spyder開發(fā)程序Spyder是使用Python進行科學計算和編程的開源集成開發(fā)環(huán)境,其界面與Matlab的“工作空間”相似。【例12.4】集成開發(fā)環(huán)境Spyder使用示例使用JupyterNotebook進行數(shù)據(jù)分析JupyterNotebook是一種交互式的數(shù)據(jù)分析與記錄工具,它既是一個交互計算平臺,又是一個記錄計算過程的“筆記本”,它是數(shù)據(jù)分析、科學計算以及交互計算的“利器”。JupyterNotebook的特點是支持可重復性的互動計算,即可以重復更改并且執(zhí)行曾經(jīng)的輸入記錄。它可以記錄演算過程,并保存成其他很多格式,例如Python腳本、HTML、PDF等。很多課程、數(shù)據(jù)和博客是用Notebook寫作的。JupyterNotebook使用瀏覽器作為界面,向后臺的IPython服務器發(fā)送請求,并顯示結果。在瀏覽器的界面中使用單元格(Cell)輸入保存各種信息。Cell主要有Code(輸入、編輯和執(zhí)行Python代碼)和MarkDown(輸入、編輯和顯示Markdown格式的文本)兩種類型?!纠?2.5】JupyterNotebook使用示例12.4科學計算和數(shù)據(jù)處理NumPy模塊主要提供數(shù)組和矩陣處理功能,還包括一些高級功能,例如傅立葉變換等SciPy提供了用于科學計算的功能。SciPy模塊包括統(tǒng)計、優(yōu)化、整合、線性代數(shù)、傅里葉變換、信號和圖像處理、常微分方程求解器等功能Pandas是基于NumPy庫的用于數(shù)據(jù)處理和分析的第三方庫。Pandas提供了標準的數(shù)據(jù)模型和大量快速便捷處理數(shù)據(jù)的函數(shù)和方法,可以實現(xiàn)大型數(shù)據(jù)集的處理和分析任務SymPy是一個支持符號計算的Python第三方庫,是一個全功能的計算機代數(shù)系統(tǒng)。SymPy代碼簡潔、易于理解,支持符號計算、高精度計算、模式匹配、繪圖、解方程、微積分、組合數(shù)學、離散數(shù)學、幾何學、概率與統(tǒng)計、物理學等領域的計算和應用12.5文本處理與分析pdfminer是可以從PDF文檔中提取各類信息的第三方庫,能夠獲取PDF中文本的準確位置、字體、行數(shù)等信息,能夠?qū)DF文件轉(zhuǎn)換為HTML及文本格式openpyxl是處理MicrosoftExcel文檔的Python第三方庫,支持讀寫Excel的xls、xlsx、xlsm、xltx、xltm等格式文件python-docx是處理MicrosoftWord文檔的Python第三方庫,支持讀取、查詢以及修改doc、docx等格式文件NLTK(NaturalLanguageToolKit)是一套基于Python的自然語言處理工具集。NLTK包含Python模塊,數(shù)據(jù)集和教程,用于自然語言處理(NLP,NaturalLanguageProcessing)的研究和開發(fā)jieba是目前最好的Python中文分詞組件。jieba支持三種分詞模式:精確模式、全模式和搜索引擎模式。jieba還支持自定義詞典等功能,是中文文本處理和分析不可獲取的利器12.6數(shù)據(jù)可視化Matplotlib是提供數(shù)據(jù)繪圖功能的Python第三方庫,廣泛用于科學計算的二維數(shù)據(jù)可視化,可以繪制100多種的數(shù)據(jù)可視化效果【例12.6】使用Matplotlib模塊繪制y=sin(x)的函數(shù)曲線(sine.py)Seaborn是基于Matplotlib進行再封裝開發(fā)的第三方庫,并且支持Numpy和Pandas。Seaborn能夠?qū)y(tǒng)計類數(shù)據(jù)進行有效的可視化展示,它提供了一批高層次的統(tǒng)計類數(shù)據(jù)的可視化展示效果VTK(VisualizationToolkit,視覺工具函數(shù)庫)是一個開源、跨平臺、支持平行處理的圖形應用函數(shù)庫,用于實現(xiàn)可編程的專業(yè)三維可視化。Python的VTK庫是封裝了標準VTK庫的Python第三方庫Mayavi基于VTK開發(fā)的Python第三方庫,可以方便快速繪制三維可視化圖形。Mayavi也被稱為Mayavi2Wordcloud是實現(xiàn)詞云圖的Python第三方庫。用戶可以通過詞云圖(也稱為文字云)對文本中出現(xiàn)頻率較高的“關鍵詞”予以視覺化的展現(xiàn),從而突出文本中的主旨importmatplotlib.pyplotasplt#導入matplotlib模塊中的子模塊pyplotimportmath#導入math模塊x=[2*math.pi*i/100foriinrange(100)]y=[math.sin(i)foriinx]plt.title('y=sin(x)');plt.xlabel('x');plt.ylabel('sin(x)')plt.plot(x,y)plt.show()12.7網(wǎng)絡爬蟲和Web信息提取requests是使用Python語言基于urllib3編寫的,采用的是Apache2Licensed開源協(xié)議的HTTP庫,requests比urllib更加方便,可以節(jié)約用戶大量的工作re是Python標準庫中自帶的正則表達式庫。無須安裝,即可以使用正則表達式來匹配使用requests抓取的網(wǎng)頁以獲取相應的信息Beautifulsoup4(BeautifulSoup或bs4)是用于解析和處理HTML和XML的Python第三方庫,其最大優(yōu)點是能根據(jù)HTML和XML語法建立解析樹,從而高效解析其中的內(nèi)容Scrapy是最流行的Python語言爬蟲框架之一,用于從網(wǎng)頁面中提取結構化的數(shù)據(jù)。Scrapy框架是高層次的Web獲取框架,本身包含了成熟的網(wǎng)絡爬蟲系統(tǒng)所應該具有的部分共用功能,廣泛用于數(shù)據(jù)挖掘、監(jiān)測和自動化測試Pyspider是一款靈活便捷的爬蟲框架。與Scrapy框架相比,Pyspider更適合用于中小規(guī)模的爬取工作。Pyspider提供了強大的WebUI和腳本編輯器、任務監(jiān)控和項目管理和結果查看功能12.8機器學習和深度學習Scikit-learn(簡稱sklearn)是基于NumPy、SciPy和Matplotlib構建的簡單且高效的數(shù)據(jù)挖掘和數(shù)據(jù)分析工具TensorFlow是谷歌公司基于神經(jīng)網(wǎng)絡算法庫DistBelief研發(fā)的人工智能學習系統(tǒng),也是用來支撐著名的AlphaGo系統(tǒng)的后臺框架,被廣泛應用于各類機器學習(MachineLearning)算法的編程實現(xiàn)Theano是為執(zhí)行深度學習中大規(guī)模神經(jīng)網(wǎng)絡算法的運算而設計的機器學習框架,擅長處理多維數(shù)組。Theano是一個偏向底層開發(fā)的庫,偏向于學術研究Keras是一個由Python編寫的開源人工神經(jīng)網(wǎng)絡庫,可以作為Tensorflow、Microsoft-CNTK和Theano的高階應用程序接口,從而進行深度學習模型的設計、調(diào)試、評估、應用和可視化12.9圖形用戶界面tkinter(Tk
interface,tk接口),是Tk圖形用戶界面工具包標準的Python接口。tkinter是Python標準庫中提供的GUI庫,支持跨平臺的圖形用戶界面應用程序開發(fā)?;趖kinter模塊創(chuàng)建的圖形用戶界面組成通常包括如下內(nèi)容【例12.7】創(chuàng)建圖形用戶界面Helloworld程序(Hello1.py)。創(chuàng)建應用程序主窗口。在應用程序主窗口中,單擊“Hello”按鈕,將彈出“Hello,world!”消息框Qt5適合于大型應用程序開發(fā)。PyQT5是Qt5圖形用戶界面工具包標準的Python接口。QtDesigner界面設計器支持快速開發(fā)PyQT5圖形界面用戶程序wxPython是作為優(yōu)秀的跨平臺GUI庫wxWidgets的Python封裝。使用wxPython可以很方便地創(chuàng)建完整的、功能鍵全的圖形用戶界面應用程序Gtk是Linux下Gnome的核心GUI開發(fā)庫,功能齊全。PyGtk模塊是Gnome圖形用戶界面工具包Gtk標準的Python接口PyGObject是另一個流行的Python圖形用戶界面第三方庫fromtkinterimport*#導入tkinter模塊所有內(nèi)容fromtkinterimportmessagebox#導入tkinter模塊中的子模塊messageboxroot=Tk()#創(chuàng)建1個Tk根窗口組件rootbtnSayHi=Button(root)#創(chuàng)建1個按鈕組件btnSayHi,作為root的子組件btnSayHi["text"]="Hello"#設置btnSayHi的text屬性btnSayHi.pack()#調(diào)用組件的pack方法,調(diào)整其顯示位置和大小defsayHi(e):#定義事件處理程序messagebox.showinfo("Message","Hello,world!")#彈出消息框btnSayHi.bind("<Button-1>",sayHi)#綁定事件處理程序,鼠標左鍵root.mainloop()#調(diào)用組件的mainloop()方法,進入事件循環(huán)12.10圖形和圖像處理turtle是Python標準庫中提供的一個很流行的繪制圖像的函數(shù)庫Pillow是Python中的圖像處理庫(PIL:PythonImageLibrary),提供了廣泛的文件格式支持,強大的圖像處理能力,主要包括圖像儲存、圖像顯示、格式轉(zhuǎn)換以及基本的圖像處理操作等OpenCV(OpenComputerVisionLibrary,開源計算機視覺庫)是應用最廣泛的計算機視覺庫之一SimpleCV集成了許多強大的開源計算機視覺庫。使用SimpleCV,用戶可以在統(tǒng)一的框架下使用高級算法,例如特征檢測、濾波和模式識別。使用者不需要清楚一些細節(jié),比如圖像比特深度、文件格式、顏色空間、緩沖區(qū)管理、特征值還有矩陣和圖像的存儲等12.11Web開發(fā)Django是Python生態(tài)中最流行的開源Web應用框架。Django采用MTV模式(Model模型、Template模板、View視圖)模型,可以高效地實現(xiàn)快速Web網(wǎng)站開發(fā)Pyramid是一個通用、開源的PythonWeb應用程序開發(fā)框架。Pyramid的特色是靈活性,開發(fā)者可以靈活選擇所使用的數(shù)據(jù)庫、模板風格、URL結構等內(nèi)容Flask是輕量級Web應用框架,也被稱為微框架。使用Flask開發(fā)Web應用十分方便,甚至幾行代碼即可建立一個小型網(wǎng)站。Flask核心十分簡單,通過擴展模塊形式來支持諸如數(shù)據(jù)庫訪問等的抽象訪問層12.12游戲開發(fā)Pygame是一個入門級Python游戲開發(fā)框架,提供了大量與游戲相關的底層邏輯和功能支持Panda3D是一個開源、跨平
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 情緒小屋課件
- 吉林省長春市德惠市九校2026屆化學高一上期中學業(yè)水平測試模擬試題含解析
- 懸浮的雞蛋科學實驗課件
- 車庫頂板防水施工方案
- 2026屆甘肅省岷縣第二中學高一化學第一學期期中學業(yè)水平測試試題含解析
- 學校課程具體實施方案
- 2026屆湖北省名師聯(lián)盟化學高二第一學期期中聯(lián)考模擬試題含解析
- 車務系統(tǒng)站段管理結構三年工程實施方案和推進計劃
- 中醫(yī)康復招聘試題及答案
- 正畸牙醫(yī)考試題及答案
- 第一章《空間向量與立體幾何》單元綜合檢測卷(基礎A卷)(解析版)
- 設計思維方法與表達(高職藝術設計)PPT完整全套教學課件
- 非麻醉患者鎮(zhèn)靜鎮(zhèn)痛原則
- 港口陸域設施
- 模板施工方案技術交底
- 攤鋪機使用說明rp953e-903e操作手冊
- GB/T 1871.1-1995磷礦石和磷精礦中五氧化二磷含量的測定磷鉬酸喹啉重量法和容量法
- GB/T 13880-1992半掛牽引車牽引座的安裝
- GB 6675.12-2014玩具安全第12部分:玩具滑板車
- 食物中毒的急救治課件
- 電廠內(nèi)業(yè)資料表格
評論
0/150
提交評論