版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第20章(附錄A)
Python計(jì)算生態(tài)本章要點(diǎn):20.1Python標(biāo)準(zhǔn)庫(kù)20.2第三方庫(kù)和PyPI20.3Python科學(xué)計(jì)算環(huán)境20.4科學(xué)計(jì)算和數(shù)據(jù)處理20.5文本處理與分析20.6數(shù)據(jù)可視化20.7網(wǎng)絡(luò)爬蟲(chóng)和Web信息提取20.8機(jī)器學(xué)習(xí)和深度學(xué)習(xí)20.9圖形用戶界面20.10圖形和圖像像處理20.11Web開(kāi)發(fā)20.12游戲開(kāi)發(fā)20.13其他第三方庫(kù)20.1Python標(biāo)準(zhǔn)庫(kù)Python標(biāo)準(zhǔn)安裝包中包含一部分常用的庫(kù),被稱為Python標(biāo)準(zhǔn)庫(kù)文本處理相關(guān)模塊(1) string:常見(jiàn)的字符串操作,包括字符串常量、格式化字符、輔助函數(shù)(2) re:正則表達(dá)式操作,包括處理正則表達(dá)式的對(duì)象和函數(shù)。(3) difflib:計(jì)算差異的輔助工具。(4) textwrap:文本自動(dòng)換行與填充。(5) unicodedata:Unicode數(shù)據(jù)庫(kù)。(6) stringprep:因特網(wǎng)字符串預(yù)備。(7) readline:GNUreadline接口。(8) rlcompleter:GNUreadline的補(bǔ)全函數(shù)二進(jìn)制數(shù)據(jù)服務(wù)模塊標(biāo)準(zhǔn)庫(kù)中提供了一些操作二進(jìn)制數(shù)據(jù)的基本模塊。有關(guān)二進(jìn)制數(shù)據(jù)的其他操作,請(qǐng)參見(jiàn)與文件格式和網(wǎng)絡(luò)協(xié)議有關(guān)的標(biāo)準(zhǔn)庫(kù)。二進(jìn)制數(shù)據(jù)服務(wù)的主要模塊如下。struct:將字節(jié)串解讀為打包的二進(jìn)制數(shù)據(jù)。codecs:編解碼器注冊(cè)和相關(guān)基類數(shù)據(jù)結(jié)構(gòu)相關(guān)模塊Python語(yǔ)言除了提供豐富的內(nèi)置數(shù)據(jù)結(jié)構(gòu)類型(dict、list、set、frozenset、tuple、str、bytes、bytearray),還通過(guò)標(biāo)準(zhǔn)庫(kù)提供了許多專門的數(shù)據(jù)類型,例如日期和時(shí)間、固定類型的數(shù)組、堆隊(duì)列、雙端隊(duì)列以及枚舉等。數(shù)據(jù)結(jié)構(gòu)相關(guān)的主要模塊如下。datetime:基本的日期和時(shí)間類型。calendar:日歷相關(guān)函數(shù)。collections:容器數(shù)據(jù)類型。collections.abc:容器的抽象基類。heapq:堆隊(duì)列算法。bisect:數(shù)組二分查找算法。array:高效的數(shù)值數(shù)組。weakref:弱引用。types:動(dòng)態(tài)類型創(chuàng)建和內(nèi)置類型名稱。copy:淺層(shallow)和深層(deep)復(fù)制操作。pprint:數(shù)據(jù)美化輸出。reprlib:另一種repr()實(shí)現(xiàn)。enum:對(duì)枚舉的支持?jǐn)?shù)值計(jì)算相關(guān)模塊Python標(biāo)準(zhǔn)庫(kù)中提供與數(shù)值計(jì)算相關(guān)的模塊。numbers模塊定義了數(shù)字類型的抽象層次結(jié)構(gòu)。math和cmath模塊包含浮點(diǎn)數(shù)和復(fù)數(shù)的各種數(shù)學(xué)函數(shù)。decimal模塊支持使用任意精度算術(shù)的十進(jìn)制數(shù)的精確表示。數(shù)值計(jì)算相關(guān)的主要模塊如下。numbers:數(shù)字的抽象基類。math:數(shù)學(xué)函數(shù)。cmath:關(guān)于復(fù)數(shù)的數(shù)學(xué)函數(shù)。decimal:十進(jìn)制定點(diǎn)和浮點(diǎn)運(yùn)算。fractions:分?jǐn)?shù)及其運(yùn)算。random:生成偽隨機(jī)數(shù)。statistics:數(shù)學(xué)統(tǒng)計(jì)函數(shù)函數(shù)式編程模塊Python語(yǔ)言支持函數(shù)式編程范式。標(biāo)準(zhǔn)庫(kù)中提供了相關(guān)模塊以及函數(shù)和類,以支持函數(shù)式編程風(fēng)格以及在可調(diào)用對(duì)象上的通用操作。函數(shù)式編程相關(guān)的主要模塊如。itertools:為高效循環(huán)而創(chuàng)建迭代器的函數(shù)。functools:高階函數(shù)和可調(diào)用對(duì)象上的操作。operator:標(biāo)準(zhǔn)運(yùn)算符替代函數(shù)文件和目錄訪問(wèn)相關(guān)模塊Python標(biāo)準(zhǔn)庫(kù)提供了處理磁盤文件和目錄的模塊,以可移植的方式操作路徑以及創(chuàng)建臨時(shí)文件。文件和目錄訪問(wèn)相關(guān)的主要模塊如下。pathlib:面向?qū)ο蟮奈募到y(tǒng)路徑。os.path:常用路徑操作。fileinput:迭代來(lái)自多個(gè)輸入流的行。stat:解析stat()結(jié)果。filecmp:文件及目錄的比較。tempfile:生成臨時(shí)文件和目錄。glob:Unix風(fēng)格路徑名模式擴(kuò)展。fnmatch:Unix文件名模式匹配。linecache:隨機(jī)讀寫文本行。shutil:高階文件操作數(shù)據(jù)持久化模塊Python標(biāo)準(zhǔn)庫(kù)中提供了支持在磁盤上以持久形式存儲(chǔ)Python數(shù)據(jù)的模塊。pickle和marshal模塊可以將Python數(shù)據(jù)類型轉(zhuǎn)換為字節(jié)流,然后從字節(jié)中重新創(chuàng)建對(duì)象。各種與DBM相關(guān)的模塊支持一系列基于散列的文件格式,這些格式存儲(chǔ)字符串到其他字符串的映射。數(shù)據(jù)持久化相關(guān)的主要模塊如下。pickle:Python對(duì)象序列化。copyreg:注冊(cè)配合pickle模塊使用的函數(shù)。shelve:Python對(duì)象持久化。marshal:內(nèi)部Python對(duì)象序列化。dbm:Unix數(shù)據(jù)庫(kù)接口。sqlite3:SQLite數(shù)據(jù)庫(kù)DB-API2.0接口模塊數(shù)據(jù)壓縮和存檔相關(guān)模塊Python標(biāo)準(zhǔn)庫(kù)中提供了模塊支持zlib、gzip、bzip2和lzma數(shù)據(jù)壓縮算法,以及創(chuàng)建ZIP和tar格式的歸檔文件的模塊。數(shù)據(jù)壓縮和存檔包含如下相關(guān)的主要模塊。zlib:與gzip兼容的壓縮。gzip:對(duì)gzip格式的支持。bz2:對(duì)bzip2壓縮算法的支持。lzma:使用LZMA算法壓縮。zipfile:使用ZIP存檔。tarfile:讀寫tar歸檔文件文件格式相關(guān)模塊Python標(biāo)準(zhǔn)庫(kù)中包含如下解析不同文件格式的主要模塊。csv:CSV文件讀寫。configparser:配置文件解析器。netrc:netrc文件處理。xdrlib:編碼與解碼XDR數(shù)據(jù)。plistlib:生成與解析MacOSX.plist文件加密服務(wù)相關(guān)模塊Python標(biāo)準(zhǔn)庫(kù)中包含如下實(shí)現(xiàn)各種加密算法的主要模塊。hashlib:安全哈希與消息摘要。hmac:基于密鑰的消息驗(yàn)證。secrets:生成安全隨機(jī)數(shù)字用于管理密碼通用操作系統(tǒng)服務(wù)相關(guān)模塊os:多種操作系統(tǒng)接口。io:處理流的核心工具。time:時(shí)間的訪問(wèn)和轉(zhuǎn)換。argparse:命令行選項(xiàng)、參數(shù)和子命令解析器。getopt:C風(fēng)格的命令行選項(xiàng)解析器。logging:日志記錄工具。logging.config:日志記錄配置。logging.handlers:日志處理。getpass:便攜式密碼輸入工具。curses:終端字符單元顯示的處理。curses.textpad:curses程序的文本輸入小部件。curses.ascii:ASCII字符實(shí)用工具。curses.panel:curses的面板擴(kuò)展。platform:獲取底層平臺(tái)的標(biāo)識(shí)數(shù)據(jù)。errno:標(biāo)準(zhǔn)errno系統(tǒng)符號(hào)。ctypes:Python的外部函數(shù)庫(kù)并發(fā)計(jì)算相關(guān)模塊threading:基于線程的并行。multiprocessing:基于進(jìn)程的并行。multiprocessing.shared_memory:可以從進(jìn)程直接訪問(wèn)的共享內(nèi)存。concurrent:并行任務(wù)。concurrent.futures:?jiǎn)?dòng)并行任務(wù)。subprocess:子進(jìn)程管理。sched:事件調(diào)度器。queue:一個(gè)同步的隊(duì)列類。_thread:底層多線程API。_dummy_thread:_thread的替代模塊。dummy_threading:可以直接替代threading模塊上下文變量(contextvars)模塊Python標(biāo)準(zhǔn)庫(kù)提供了相關(guān)API用于管理、存儲(chǔ)和訪問(wèn)上下文相關(guān)狀態(tài)的模塊contextvars,用于上下文變量管理網(wǎng)絡(luò)和進(jìn)程間通信相關(guān)模塊asyncio:異步I/O。socket:底層網(wǎng)絡(luò)接口。ssl:套接字對(duì)象的TLS/SSL封裝。select:等待I/O完成。selectors:高級(jí)I/O復(fù)用庫(kù)。asyncore:異步socket處理器。asynchat:異步socket指令/響應(yīng)處理器signal:設(shè)置異步事件處理程序。mmap:內(nèi)存映射文件支持imaplib:IMAP4協(xié)議客戶端。nntplib:NNTP協(xié)議客戶端。smtplib:SMTP協(xié)議客戶端。smtpd:SMTP服務(wù)器。telnetlib:Telnet客戶端。uuid:基于RFC4122的UUID對(duì)象。socketserver:一種網(wǎng)絡(luò)服務(wù)器框架。http.server:HTTP服務(wù)器。http.cookies:HTTP狀態(tài)管理。http.cookiejar:HTTP客戶端的Cookie處理xmlrpc:XMLRPC服務(wù)端與客戶端模塊。xmlrpc.client:XML-RPC客戶端訪問(wèn)。xmlrpc.server:基本XML-RPC服務(wù)器。ipaddress:IPv4/IPv6操作庫(kù)?;ヂ?lián)網(wǎng)數(shù)據(jù)處理相關(guān)模塊email:電子郵件與MIME處理包。json:JSON編碼和解碼器。mailcap:Mailcap文件處理。mailbox:操作各種格式的電子郵箱。mimetypes:映射文件名到MIME類型。base64:Base16、Base32、Base64、Base85數(shù)據(jù)編碼。binhex:對(duì)binhex4文件進(jìn)行編碼和解碼。binascii:二進(jìn)制和ASCII碼互轉(zhuǎn)。quopri:編碼與解碼經(jīng)過(guò)MIME轉(zhuǎn)碼的可打印數(shù)據(jù)。uu:對(duì)uuencode文件進(jìn)行編碼與解碼結(jié)構(gòu)化標(biāo)記處理相關(guān)模塊Python標(biāo)準(zhǔn)庫(kù)提供了如下處理各種形式的結(jié)構(gòu)化數(shù)據(jù)標(biāo)記的模塊,包括標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言(SGML)、超文本標(biāo)記語(yǔ)言(HTML)以及可擴(kuò)展標(biāo)記語(yǔ)言(XML)的接口。html:超文本標(biāo)記語(yǔ)言支持,包含子模塊html.parser和html.entitiesxml:擴(kuò)展標(biāo)記語(yǔ)言支持,包括子模塊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é)議和支持相關(guān)模塊webbrowser:Web瀏覽器控制器。cgi:公共網(wǎng)關(guān)接口支持。cgitb:用于CGI腳本的回溯管理器。wsgiref:WSGI實(shí)用工具和參考實(shí)現(xiàn)。urllib:URL處理模塊。urllib.request:用于打開(kāi)URL的可擴(kuò)展庫(kù)urllib.response:urllib使用的Response類urllib.parse:將URL解析為組件urllib.error:urllib.request引發(fā)的異常類urllib.robotparser:robots.txt語(yǔ)法分析程序http:HTTP模塊http.client:HTTP協(xié)議客戶端ftplib:FTP協(xié)議客戶端poplib:POP3協(xié)議客戶端多媒體服務(wù)相關(guān)模塊audioop:處理原始音頻數(shù)據(jù)。aifc:讀取和寫入AIFF和AIFC文件。sunau:讀寫SunAU文件。wave:讀寫WAV格式文件。chunk:讀取IFF分塊數(shù)據(jù)。colorsys:顏色系統(tǒng)間的轉(zhuǎn)換。imghdr:推測(cè)圖像類型。sndhdr:推測(cè)聲音文件的類型。ossaudiodev:訪問(wèn)OSS兼容的音頻設(shè)備國(guó)際化相關(guān)模塊gettext:多語(yǔ)種國(guó)際化服務(wù)。locale:國(guó)際化服務(wù)程序框架相關(guān)模塊turtle:海龜繪圖。cmd:支持面向行的命令解釋器。shlex:簡(jiǎn)單詞法分析Tk圖形用戶界面(GUI)相關(guān)模塊tkinter:Tcl/Tk的Python接口。tkinter.ttk:Tk主題小部件。tkinter.tix:Tk擴(kuò)展組件。tkinter.scrolledtext:滾動(dòng)文字控件。IDLE:集成開(kāi)發(fā)環(huán)境開(kāi)發(fā)工具相關(guān)模塊typing:類型標(biāo)注支持。pydoc:文檔生成器和在線幫助系統(tǒng)。doctest:測(cè)試交互性的Python示例。unittest:?jiǎn)卧獪y(cè)試框架。unittest.mock:模擬對(duì)象庫(kù)。2to3:自動(dòng)將Python2代碼轉(zhuǎn)為Python3代碼。test:Python回歸測(cè)試包。test.support:Python測(cè)試套件的實(shí)用程序。test.support.script_helper:Python執(zhí)行測(cè)試的實(shí)用程序調(diào)試和性能分析相關(guān)模塊bdb:調(diào)試框架。faulthandler:轉(zhuǎn)儲(chǔ)Python回溯。pdb:Python的調(diào)試器。timeit:測(cè)量小代碼片段的執(zhí)行時(shí)間。trace:跟蹤Python語(yǔ)句執(zhí)行。tracemalloc:跟蹤內(nèi)存分配。軟件打包和分發(fā)相關(guān)模塊distutils:構(gòu)建和安裝Python模塊。ensurepip:引導(dǎo)pip安裝程序。venv:創(chuàng)建虛擬環(huán)境。zipapp:管理可執(zhí)行Python歸檔文件Python運(yùn)行時(shí)服務(wù)相關(guān)模塊sys:系統(tǒng)相關(guān)的參數(shù)和函數(shù)。sysconfig:提供對(duì)Python配置信息的訪問(wèn)。builtins:內(nèi)建對(duì)象。__main__:頂層腳本環(huán)境。warnings:警告控制。dataclasses:數(shù)據(jù)類。contextlib:為with語(yǔ)句上下文提供的工具。abc:抽象基類。atexit:退出處理器。traceback:打印或檢索堆?;厮荨_future__:Future語(yǔ)句定義。gc:垃圾回收器接口。inspect:檢查對(duì)象。site:指定域的配置鉤子。自定義Python解釋器模塊code:解釋器基類。codeop:編譯Python代碼導(dǎo)入模塊的相關(guān)模塊zipimport:從Zip存檔中導(dǎo)入模塊。pkgutil:包擴(kuò)展工具。modulefinder:查找腳本使用的模塊。runpy:定位和執(zhí)行Python模塊。importlib:import的實(shí)現(xiàn)Python語(yǔ)言服務(wù)相關(guān)模塊parser:訪問(wèn)Python解析樹(shù)。ast:抽象語(yǔ)法樹(shù)。symtable:訪問(wèn)編譯器的符號(hào)表。symbol:與Python解析樹(shù)一起使用的常量。token:與Python解析樹(shù)一起使用的常量。keyword:檢驗(yàn)Python關(guān)鍵字。tokenize:對(duì)Python代碼使用的標(biāo)記解析器。tabnanny:模糊縮進(jìn)檢測(cè)。pyclbr:Python模塊瀏覽器支持。py_compile:編譯Python源文件。compileall:字節(jié)編譯Python庫(kù)。dis:Python字節(jié)碼反匯編器。pickletools:pickle開(kāi)發(fā)者工具集。Windows系統(tǒng)相關(guān)模塊msilib:讀寫Microsoft安裝文件。msvcrt:來(lái)自MSVC++運(yùn)行時(shí)的有用例程。winreg:Windows注冊(cè)表訪問(wèn)。winsound:Windows聲音播放界面Unix專有服務(wù)模塊posix:最常見(jiàn)的POSIX系統(tǒng)調(diào)用pwd:用戶密碼數(shù)據(jù)庫(kù)spwd:影子密碼數(shù)據(jù)庫(kù)grp:組數(shù)據(jù)庫(kù)crypt:檢查Unix密碼的函數(shù)termios:POSIX風(fēng)格的tty控制tty:終端控制功能。pty:偽終端工具。fcntl:fcntl和ioctl系統(tǒng)調(diào)用pipes:終端管道接口。resource:資源使用信息。nis:Sun的NIS(黃頁(yè))接口syslog:Unixsyslog庫(kù)例程20.2第三方庫(kù)和PyPIPyPI官網(wǎng)PyPI(PythonPackageIndex)是Python提供的第三方庫(kù)索引官方網(wǎng)站,其網(wǎng)址為“/”。PyPI列出了數(shù)量眾多的第三方庫(kù)的基本信息下載并安裝第三方庫(kù)第三方庫(kù)的編譯版本一般后綴為.whl,即wheel(輪子)的意思。把Python庫(kù)比作輪子,使用Python語(yǔ)言編寫程序的設(shè)計(jì)理念是不要自己造輪子,而是使用相關(guān)領(lǐng)域?qū)<姨峁┑妮喿樱◣?kù))【例20.1】下載和安裝Twisted庫(kù)的編譯版本C:\WINDOWS\system32>pipinstallC:\tmp\Twisted-18.4.0-cp37-cp37m-win_amd64.whl20.3Python科學(xué)計(jì)算環(huán)境常用的Python科學(xué)計(jì)算包包括Anaconda、WinPython、Python(x,y)、Canopy等Anaconda是Python的一個(gè)開(kāi)源發(fā)行版本,主要面向科學(xué)計(jì)算。Anaconda附帶了conda(包管理器)、Python和150多個(gè)科學(xué)包及其依賴項(xiàng)。使用Anaconda,無(wú)需花費(fèi)大量時(shí)間安裝眾多的第三方Python包,用戶就可以立即開(kāi)始處理數(shù)據(jù)?!纠?0.2】下載和安裝Anaconda應(yīng)用程序安裝Anaconda后,就相當(dāng)于安裝了Python、IPython、集成開(kāi)發(fā)環(huán)境Spyder、JupyterNotebook以及一些常用的科學(xué)計(jì)算包WinPython是基于Windows平臺(tái)的Python的一個(gè)開(kāi)源發(fā)行版本,主要面向教育科學(xué)計(jì)算。集成的WinPython軟件包管理器(WPPM)有助于安裝、卸載或升級(jí)Python軟件包WinPython實(shí)際上是整合了IDE工具Spyder和一些科學(xué)計(jì)算包,默認(rèn)包含了numpy、scipy、matplotlib、sklearn等工具包,完全可以替代MATLAB進(jìn)行科學(xué)計(jì)算Python(x,y)是一個(gè)免費(fèi)的科學(xué)和工程開(kāi)發(fā)包,提供了數(shù)學(xué)計(jì)算、數(shù)據(jù)分析和可視化展示等功能,包括QT圖形用戶界面和Spyder集成交互開(kāi)發(fā)環(huán)境使用IPython進(jìn)行交互式科學(xué)計(jì)算IPython是一個(gè)基于PythonShell的交互式解釋器,比默認(rèn)Shell增加了強(qiáng)大的編輯和交互功能,主要包括Tab鍵自動(dòng)補(bǔ)全、獲得對(duì)象信息、調(diào)用系統(tǒng)Shell命令、歷史記錄等。IPython還提供了功能強(qiáng)大、內(nèi)建的Magic函數(shù),即任何第一個(gè)字母為%的行視為Magic函數(shù)的特殊調(diào)用,都可以控制IPython,為其增加許多系統(tǒng)功能。【例20.3】IPython使用示例使用%timeit命令快速測(cè)量代碼運(yùn)行時(shí)間In[6]:%timeitsum(range(1000000))使用%run命令運(yùn)行腳本In[7]:%runc:\pythonpa\ch01\bigint.py使用%pylab進(jìn)行交互式計(jì)算In[8]:%pylabIn[9]:x=linspace(-10,10,1000)In[10]:plot(x,sin(x))使用集成開(kāi)發(fā)環(huán)境Spyder開(kāi)發(fā)程序Spyder是使用Python進(jìn)行科學(xué)計(jì)算和編程的開(kāi)源集成開(kāi)發(fā)環(huán)境,其界面與Matlab的“工作空間”相似?!纠?0.4】集成開(kāi)發(fā)環(huán)境Spyder使用示例使用JupyterNotebook進(jìn)行數(shù)據(jù)分析JupyterNotebook是一種交互式的數(shù)據(jù)分析與記錄工具,它既是一個(gè)交互計(jì)算平臺(tái),又是一個(gè)記錄計(jì)算過(guò)程的“筆記本”,它是數(shù)據(jù)分析、科學(xué)計(jì)算以及交互計(jì)算的“利器”。JupyterNotebook的特點(diǎn)是支持可重復(fù)性的互動(dòng)計(jì)算,即可以重復(fù)更改并且執(zhí)行曾經(jīng)的輸入記錄。它可以記錄演算過(guò)程,并保存成其他很多格式,例如Python腳本、HTML、PDF等。很多課程、數(shù)據(jù)和博客是用Notebook寫作的。JupyterNotebook使用瀏覽器作為界面,向后臺(tái)的IPython服務(wù)器發(fā)送請(qǐng)求,并顯示結(jié)果。在瀏覽器的界面中使用單元格(Cell)輸入保存各種信息。Cell主要有Code(輸入、編輯和執(zhí)行Python代碼)和MarkDown(輸入、編輯和顯示Markdown格式的文本)兩種類型?!纠?0.5】JupyterNotebook使用示例20.4科學(xué)計(jì)算和數(shù)據(jù)處理NumPy模塊主要提供數(shù)組和矩陣處理功能,還包括一些高級(jí)功能,例如傅立葉變換等SciPy提供了用于科學(xué)計(jì)算的功能。SciPy模塊包括統(tǒng)計(jì)、優(yōu)化、整合、線性代數(shù)、傅里葉變換、信號(hào)和圖像處理、常微分方程求解器等功能Pandas是基于NumPy庫(kù)的用于數(shù)據(jù)處理和分析的第三方庫(kù)。Pandas提供了標(biāo)準(zhǔn)的數(shù)據(jù)模型和大量快速便捷處理數(shù)據(jù)的函數(shù)和方法,可以實(shí)現(xiàn)大型數(shù)據(jù)集的處理和分析任務(wù)SymPy是一個(gè)支持符號(hào)計(jì)算的Python第三方庫(kù),是一個(gè)全功能的計(jì)算機(jī)代數(shù)系統(tǒng)。SymPy代碼簡(jiǎn)潔、易于理解,支持符號(hào)計(jì)算、高精度計(jì)算、模式匹配、繪圖、解方程、微積分、組合數(shù)學(xué)、離散數(shù)學(xué)、幾何學(xué)、概率與統(tǒng)計(jì)、物理學(xué)等領(lǐng)域的計(jì)算和應(yīng)用20.5文本處理與分析pdfminer是可以從PDF文檔中提取各類信息的第三方庫(kù),能夠獲取PDF中文本的準(zhǔn)確位置、字體、行數(shù)等信息,能夠?qū)DF文件轉(zhuǎn)換為HTML及文本格式openpyxl是處理MicrosoftExcel文檔的Python第三方庫(kù),支持讀寫Excel的xls、xlsx、xlsm、xltx、xltm等格式文件python-docx是處理MicrosoftWord文檔的Python第三方庫(kù),支持讀取、查詢以及修改doc、docx等格式文件NLTK(NaturalLanguageToolKit)是一套基于Python的自然語(yǔ)言處理工具集。NLTK包含Python模塊,數(shù)據(jù)集和教程,用于自然語(yǔ)言處理(NLP,NaturalLanguageProcessing)的研究和開(kāi)發(fā)jieba是目前最好的Python中文分詞組件。jieba支持三種分詞模式:精確模式、全模式和搜索引擎模式。jieba還支持自定義詞典等功能,是中文文本處理和分析不可或缺的利器20.6數(shù)據(jù)可視化Matplotlib是提供數(shù)據(jù)繪圖功能的Python第三方庫(kù),廣泛用于科學(xué)計(jì)算的二維數(shù)據(jù)可視化,可以繪制100多種的數(shù)據(jù)可視化效果【例20.6】使用Matplotlib模塊繪制y=sin(x)的函數(shù)曲線(sine.py)Seaborn是基于Matplotlib進(jìn)行再封裝開(kāi)發(fā)的第三方庫(kù),并且支持Numpy和Pandas。Seaborn能夠?qū)y(tǒng)計(jì)類數(shù)據(jù)進(jìn)行有效的可視化展示,它提供了一批高層次的統(tǒng)計(jì)類數(shù)據(jù)的可視化展示效果VTK(VisualizationToolkit,視覺(jué)工具函數(shù)庫(kù))是一個(gè)開(kāi)源、跨平臺(tái)、支持平行處理的圖形應(yīng)用函數(shù)庫(kù),用于實(shí)現(xiàn)可編程的專業(yè)三維可視化。Python的VTK庫(kù)是封裝了標(biāo)準(zhǔn)VTK庫(kù)的Python第三方庫(kù)Mayavi基于VTK開(kāi)發(fā)的Python第三方庫(kù),可以方便快速繪制三維可視化圖形。Mayavi也被稱為Mayavi2Wordcloud是實(shí)現(xiàn)詞云圖的Python第三方庫(kù)。用戶可以通過(guò)詞云圖(也稱為文字云)對(duì)文本中出現(xiàn)頻率較高的“關(guān)鍵詞”予以視覺(jué)化的展現(xiàn),從而突出文本中的主旨20.7網(wǎng)絡(luò)爬蟲(chóng)和Web信息提取requests是使用Python語(yǔ)言基于urllib3編寫的,采用的是Apache2Licensed開(kāi)源協(xié)議的HTTP庫(kù),requests比urllib更加方便,可以節(jié)約用戶大量的工作re是Python標(biāo)準(zhǔn)庫(kù)中自帶的正則表達(dá)式庫(kù)。無(wú)須安裝,即可以使用正則表達(dá)式來(lái)匹配使用requests抓取的網(wǎng)頁(yè)以獲取相應(yīng)的信息Beautifulsoup4(BeautifulSoup或bs4)是用于解析和處理HTML和XML的Python第三方庫(kù),其最大優(yōu)點(diǎn)是能根據(jù)HTML和XML語(yǔ)法建立解析樹(shù),從而高效解析其中的內(nèi)容Scrapy是最流行的Python語(yǔ)言爬蟲(chóng)框架之一,用于從網(wǎng)頁(yè)面中提取結(jié)構(gòu)化的數(shù)據(jù)。Scrapy框架是高層次的Web獲取框架,本身包含了成熟的網(wǎng)絡(luò)爬蟲(chóng)系統(tǒng)所應(yīng)該具有的部分共用功能,廣泛用于數(shù)據(jù)挖掘、監(jiān)測(cè)和自動(dòng)化測(cè)試Pyspider是一款靈活便捷的爬蟲(chóng)框架。與Scrapy框架相比,Pyspider更適合用于中小規(guī)模的爬取工作。Pyspider提供了強(qiáng)大的WebUI和腳本編輯器、任務(wù)監(jiān)控和項(xiàng)目管理和結(jié)果查看功能20.8機(jī)器學(xué)習(xí)和深度學(xué)習(xí)Scikit-learn(簡(jiǎn)稱sklearn)是基于NumPy、SciPy和Matplotlib構(gòu)建的簡(jiǎn)單且高效的數(shù)據(jù)挖掘和數(shù)據(jù)分析工具TensorFlow是谷歌公司基于神經(jīng)網(wǎng)絡(luò)算法庫(kù)DistBelief研發(fā)的人工智能學(xué)習(xí)系統(tǒng),也是用來(lái)支撐著名的AlphaGo系統(tǒng)的后臺(tái)框架,被廣泛應(yīng)用于各類機(jī)器學(xué)習(xí)(MachineLearning)算法的編程實(shí)現(xiàn)Theano是為執(zhí)行深度學(xué)習(xí)中大規(guī)模神經(jīng)網(wǎng)絡(luò)算法的運(yùn)算而設(shè)計(jì)的機(jī)器學(xué)習(xí)框架,擅長(zhǎng)處理多維數(shù)組。Theano是一個(gè)偏向底層開(kāi)發(fā)的庫(kù),偏向于學(xué)術(shù)研究Keras是一個(gè)由Python編寫的開(kāi)源人工神經(jīng)網(wǎng)絡(luò)庫(kù),可以作為Tensorflow、Microsoft-CNTK和Theano的高階應(yīng)用程序接口,從而進(jìn)行深度學(xué)習(xí)模型的設(shè)計(jì)、調(diào)試、評(píng)估、應(yīng)用和可視化20.9圖形用戶界面tkinter(Tkinterface,tk接口),是Tk圖形用戶界面工具包標(biāo)準(zhǔn)的Python接口。tkinter是Python標(biāo)準(zhǔn)庫(kù)中提供的GUI庫(kù),支持跨平臺(tái)的圖形用戶界面應(yīng)用程序開(kāi)發(fā)【例20.7】創(chuàng)建圖形用戶界面Helloworld程序(Hello1.py)。創(chuàng)建應(yīng)用程序主窗口。在應(yīng)用程序主窗口中,單擊“Hello”按鈕,將彈出“Hello,world!”消息框Qt5適合于大型應(yīng)用程序開(kāi)發(fā)。PyQT5是Qt5圖形用戶界面工具包標(biāo)準(zhǔn)的Python接口。QtDesigner界面設(shè)計(jì)器支持快速開(kāi)發(fā)PyQT5圖形界面用戶程序wxPython是作為優(yōu)秀的跨平臺(tái)GUI庫(kù)wxWidgets的Python封裝。使用wxPython可以很方便地創(chuàng)建完整的、功能鍵全的圖形用戶界面應(yīng)用程序Gtk是Linux下Gnome的核心GUI開(kāi)發(fā)庫(kù),功能齊全。PyGtk模塊是Gnome圖形用戶界面工具包Gtk標(biāo)準(zhǔn)的Python接口PyGObject是另一個(gè)流行的Python圖形用戶界面第三方庫(kù)20.10圖形和圖像處理turtle是Python標(biāo)準(zhǔn)庫(kù)中提供的一個(gè)很流行的繪制圖像的函數(shù)庫(kù)Pillow是Python中的圖像處理庫(kù)(PIL:PythonImageLibrary),提供了廣泛的文件格式支持,強(qiáng)大的圖像處理能力,主要包括圖像儲(chǔ)存、圖像顯示、格式轉(zhuǎn)換以及基本的圖像處
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度個(gè)人股份代持與公司治理協(xié)議4篇
- 2025年度個(gè)人聯(lián)保借款合同金融科技試點(diǎn)版2篇
- 2025年度個(gè)人房產(chǎn)買賣合同附件清單范本3篇
- 二零二五年度美容院消防安全管理與應(yīng)急預(yù)案合同4篇
- 2025年度個(gè)人教育資助貸款延期合同4篇
- 二零二五年度新型門店合伙人收益分配管理合同4篇
- 2025年度汽車租賃保險(xiǎn)及理賠服務(wù)合同范本3篇
- 2024年中職學(xué)校教師個(gè)人工作計(jì)劃
- 花崗巖貼面施工方案
- 軸承密封套課程設(shè)計(jì)
- 農(nóng)民工工資表格
- 【寒假預(yù)習(xí)】專題04 閱讀理解 20篇 集訓(xùn)-2025年人教版(PEP)六年級(jí)英語(yǔ)下冊(cè)寒假提前學(xué)(含答案)
- 2024年智能監(jiān)獄安防監(jiān)控工程合同3篇
- 幼兒園籃球課培訓(xùn)
- 統(tǒng)編版(2024新版)七年級(jí)《道德與法治》上冊(cè)第一單元《少年有夢(mèng)》單元測(cè)試卷(含答案)
- 100道20以內(nèi)的口算題共20份
- 高三完形填空專項(xiàng)訓(xùn)練單選(部分答案)
- 護(hù)理查房高鉀血癥
- 項(xiàng)目監(jiān)理策劃方案匯報(bào)
- 《職業(yè)培訓(xùn)師的培訓(xùn)》課件
- 建筑企業(yè)新年開(kāi)工儀式方案
評(píng)論
0/150
提交評(píng)論