關(guān)于我們
書單推薦
新書推薦
|
Python大學(xué)教程:面向計算機科學(xué)和數(shù)據(jù)科學(xué)
本書提供了一種獨特的方法來講解Python編程入門,內(nèi)容符合新的ACM/IEEECS和相關(guān)的計算課程倡議,以及由美國國家科學(xué)基金會贊助的數(shù)據(jù)科學(xué)本科課程。內(nèi)容涵蓋了新的主題和應(yīng)用的覆蓋面,模塊化架構(gòu)使教師能夠方便地調(diào)整文本,適應(yīng)課程需求。通過本書,你將學(xué)習(xí):
538個案例研究,471道練習(xí)題和項目,557道自我測驗題;贗Python和Jupyter Notebook的即時反饋。問題求解、算法開發(fā)、控制語句、函數(shù)等基礎(chǔ)知識。 列表、元組、字典、集合、Numpy數(shù)組、pandas Series和DataFrame。 2D/3D的靜態(tài)、動態(tài)和交互式可視化。 字符串、文本文件、JSON序列化、CSV、異常。 過程式、函數(shù)式和面向?qū)ο蟮某绦蛟O(shè)計方法。 “數(shù)據(jù)科學(xué)入門”:基礎(chǔ)統(tǒng)計、模擬、動畫、隨機變量、數(shù)據(jù)整理、回歸。 隱私、安全、倫理、可重現(xiàn)、透明。 AI、大數(shù)據(jù)和云數(shù)據(jù)科學(xué)案例研究:NLP、Twitter數(shù)據(jù)挖掘、IBM Watson、機器學(xué)習(xí)、深度學(xué)習(xí)、計算機視覺、Hadoop、Spark、NoSQL、IoT。 開源庫:NumPy、pandas、Matplotlib、Seaborn、Folium、SciPy、NLTK、TextBlob、spaCy、Textatistic、Tweepy、Scikit-learn、Keras、PubNub等。
前 言
“塔爾山上有黃金! 在過去的幾十年中,很多發(fā)展趨勢一一顯現(xiàn)。計算機的硬件速度越來越快,價格越來越便宜,尺寸越來越小。網(wǎng)絡(luò)帶寬(攜帶信息的能力)越來越大,價格越來越便宜。同時軟件規(guī)模越來越龐大,而“開源”運動又將它們變成完全免費或者接近免費。短時間內(nèi),“物聯(lián)網(wǎng)”將數(shù)百億各種各樣的設(shè)備連接起來,并快速產(chǎn)生了大規(guī)模的數(shù)據(jù)。 幾年之前,如果有人讓我們寫一本主題為“大數(shù)據(jù)”和“云計算”的大學(xué)階段編程入門教材,并且在封面上繪制一只彩色的大象(象征“巨大”),我們可能會如此反應(yīng):“嗯?”如果他們繼續(xù)讓我們在書名中囊括AI(人工智能),我們可能會說:“真的嗎?這對于編程初學(xué)者會不會過于超前了?” 如果有人讓我們在書名中加上“數(shù)據(jù)科學(xué)”,我們可能會問:“計算機科學(xué)不是已經(jīng)包含了數(shù)據(jù)嗎?為什么我們需要為此單獨分一個科目?”好吧,如今談及程序設(shè)計,最酷的說法就是“什么都是數(shù)據(jù)”—數(shù)據(jù)科學(xué)、數(shù)據(jù)分析、大數(shù)據(jù)、關(guān)系數(shù)據(jù)庫(SQL)以及NoSQL和NewSQL數(shù)據(jù)庫。 如今我們真的寫了這樣一本書!歡迎閱讀! 在本書中,你將會著手學(xué)習(xí)當今最引人入勝、最前沿的計算技術(shù)—你將會看到,它將計算機科學(xué)和數(shù)據(jù)科學(xué)輕松地結(jié)合在一起,是一門適用于這些學(xué)科和相關(guān)學(xué)科的入門課程。此外,你將使用Python進行編程,這是世界上發(fā)展速度最快、最流行的編程語言之一。在前言中,我們將展示這本書的“靈魂”。 專業(yè)程序員常常很快喜歡上Python。他們欣賞Python的表現(xiàn)力、易讀性、簡潔性和交互性。他們喜歡開源軟件世界,這個世界正在為廣泛的應(yīng)用領(lǐng)域不斷生成可復(fù)用的軟件。 無論你是教師、初學(xué)者或者有經(jīng)驗的專業(yè)人士,這本書都將對你有所幫助。Python對于初學(xué)者而言是優(yōu)秀的第一門編程語言,并且適用于開發(fā)工業(yè)級的應(yīng)用。對于初學(xué)者而言,本書前面的章節(jié)奠定了堅實的編程基礎(chǔ)。 我們希望你在這本書中學(xué)到知識,并且發(fā)現(xiàn)快樂與挑戰(zhàn)。徜徉其中,享受樂趣。 將Python用于計算機科學(xué)和數(shù)據(jù)科學(xué)教學(xué) 許多頂尖的美國大學(xué)使用Python作為介紹計算機科學(xué)的語言,“CS學(xué)科排名前10的有8個(80%)、排名前39的有27個(69%)使用Python”。Python如今在教學(xué)和科學(xué)計算中尤其受到歡迎,最近已超過R語言并成為最受歡迎的數(shù)據(jù)科學(xué)編程語言。 模塊化體系結(jié)構(gòu) 我們預(yù)計計算機科學(xué)的本科生課程將會包含數(shù)據(jù)科學(xué)部分—這本書為此而設(shè)計,并且在Python編程方面滿足數(shù)據(jù)科學(xué)入門課程的需求。 本書的模塊化體系結(jié)構(gòu)幫助我們滿足計算機科學(xué)、數(shù)據(jù)科學(xué)和其他相關(guān)受眾的多樣化需求。教師能方便地進行調(diào)整,為不同專業(yè)的學(xué)生開設(shè)系列課程。 第1~11章介紹傳統(tǒng)的計算機科學(xué)編程主題。第1~10章每章都包含可選的、簡潔的“數(shù)據(jù)科學(xué)入門”一節(jié),介紹人工智能、描述性統(tǒng)計學(xué)基礎(chǔ)知識、趨中和離中度量、模擬、靜態(tài)/動態(tài)可視化、CSV文件的使用、用于數(shù)據(jù)探索和數(shù)據(jù)整理的pandas庫、時間序列和簡單的線性回歸。這會幫助你學(xué)習(xí)第12~17章中的數(shù)據(jù)科學(xué)、AI、大數(shù)據(jù)和云計算相關(guān)的案例研究,這些案例研究使用了真實數(shù)據(jù)集。 學(xué)完第1~5章中的Python相關(guān)知識以及第6~7章中的一些關(guān)鍵部分,你已經(jīng)能夠解決第12~17章的數(shù)據(jù)科學(xué)、AI和大數(shù)據(jù)案例研究中的關(guān)鍵用例,這對于所有的編程通識課都是實用的: 計算機科學(xué)方面的課程可以著重于第1~11章并略講第1~10章的“數(shù)據(jù)科學(xué)入門”部分。教師還可以介紹第12~17章中的部分或者全部案例研究。 數(shù)據(jù)科學(xué)方面的課程可以略講第1~11章,著重于大部分或者全部的第1~10章中的“數(shù)據(jù)科學(xué)入門”部分以及第12~17章中的案例研究。 前言中的“章節(jié)依賴關(guān)系”部分將展示本書的獨特架構(gòu)并幫助教師規(guī)劃個性化的教學(xué)大綱。 第12~17章的內(nèi)容很酷、很強大、很現(xiàn)代。其中包含能動手實現(xiàn)的案例研究,例如有監(jiān)督學(xué)習(xí)、無監(jiān)督學(xué)習(xí)、深度學(xué)習(xí)、強化學(xué)習(xí)(在練習(xí)中)、自然語言處理、Twitter數(shù)據(jù)挖掘、IBM Watson認知計算、大數(shù)據(jù)以及其他內(nèi)容。在這個過程中,你將會掌握數(shù)據(jù)科學(xué)的大量術(shù)語和概念,包括術(shù)語的定義以及在不同規(guī)模的程序中使用的概念。 本書讀者對象 模塊化的結(jié)構(gòu)使得本書適用于以下讀者: 所有標準的Python計算機科學(xué)及相關(guān)專業(yè)。首先,我們的書是一本現(xiàn)代的、可靠的Python CS1入門教材。ACM/IEEE的計算課程建議列出了5個類別:計算機工程、計算機科學(xué)、信息系統(tǒng)、信息技術(shù)和軟件工程。這本書對這些類別都適用。 數(shù)據(jù)科學(xué)專業(yè)的本科生課程。我們的書對許多數(shù)據(jù)科學(xué)課程都是有用的。對于入門級課程而言,它遵循課程建議,整合了所有課程的關(guān)鍵領(lǐng)域。在計算機科學(xué)或者數(shù)據(jù)科學(xué)課程計劃中,本書都可以作為第一本專業(yè)教材,也可用作高年級課程的Python參考書。 非計算機和數(shù)據(jù)科學(xué)專業(yè)學(xué)生的輔修課程。 數(shù)據(jù)科學(xué)的研究生課程。這本書可以作為入門級課程的主要教材,也可以作為高年級課程的Python參考書。 兩年制學(xué)院。這些學(xué)校會為準備進入四年制學(xué)院的數(shù)據(jù)科學(xué)專業(yè)的學(xué)生開設(shè)相關(guān)課程—這本書就是一個合適的選擇。 高中。就像出于強烈的興趣愛好而開設(shè)計算機課程一樣,很多高中已經(jīng)開設(shè)了Python編程和數(shù)據(jù)科學(xué)課程。最近在LinkedIn上發(fā)表的一篇文章寫道:“高中就應(yīng)該教授數(shù)據(jù)科學(xué),課程應(yīng)該直面我們的學(xué)生將要選擇的職業(yè)類型,直接關(guān)注工作和技術(shù)的發(fā)展方向!蔽覀兿嘈艛(shù)據(jù)科學(xué)很快就會成為一門受歡迎的大學(xué)先修課程并且最終會有數(shù)據(jù)科學(xué)的AP考試。 專業(yè)行業(yè)培訓(xùn)課程。 本書主要特色 保持簡潔,保持短小,保持新穎 保持簡潔(KIS)。在書的各個方面以及教師和學(xué)生資源中,我們都力求簡單明了。例如,在寫自然語言處理的時候,我們使用了簡潔直觀的TextBlob庫而不是更為復(fù)雜的NLTK。一般情況下,當有多個庫都能完成相近的任務(wù)時,我們選擇最簡單的一個。 保持短。↘IS)。本書的538個案例大多數(shù)都很短小—伴隨交互式IPython的即時反饋,通常只有幾行代碼。我們只在大約40個大型腳本和完整案例研究中使用了較長的代碼示例。 保持新穎(KIT)。我們查閱了大量最新的Python編程和數(shù)據(jù)科學(xué)教材以及專業(yè)書籍,瀏覽、閱讀或者觀看了大約15 000篇最新的文獻、研究論文、白皮書、視頻、博客文章、論壇文章和文檔。這讓我們能夠“把握”Python、計算機科學(xué)、數(shù)據(jù)科學(xué)、AI、大數(shù)據(jù)和云計算社區(qū)的脈搏,從而創(chuàng)建出1566個嶄新的案例、練習(xí)題和項目(EEP)。 IPython的實時反饋、搜索、發(fā)現(xiàn)和實驗教學(xué)方法 學(xué)習(xí)這本書的理想方法是閱讀它并同時運行代碼示例。在整本書中,我們使用了IPython解釋器,它采用一種友好的、實時反饋的模式,能夠在Python及其擴展庫上快速進行搜索、發(fā)現(xiàn)和實驗。 大多數(shù)代碼都在小型的可交互的IPython會話中展示。你所寫的每一個代碼片段,IPython能夠立即讀取然后計算并給出結(jié)果。這種即時反饋使你保持注意力,并助力學(xué)習(xí)過程、支撐原型設(shè)計和加速軟件開發(fā)過程。 我們的書總是強調(diào)實時代碼的教學(xué)方法,通過樣例輸入和結(jié)果顯示,專注于程序的完整和可運行。IPython的“魔力”在于將代碼片段轉(zhuǎn)換為實時代碼,每當你輸入一行時,這些代碼就會“活起來”。這有助于學(xué)習(xí)并鼓勵動手實驗。 IPython是學(xué)習(xí)常見錯誤的報錯信息的好方法。我們有時故意犯錯來告知你將發(fā)生什么,因此,當我們說某件事是錯誤的時候,試試看會發(fā)生什么。 本書配有557道自我測驗題(適合于“翻轉(zhuǎn)課堂”,稍后介紹)和471道章末練習(xí)題和項目,它們中的大多數(shù)遵循了同樣的實時反饋理念。 Python編程基礎(chǔ) 首先,本書是一本Python入門教材。我們提供了豐富的Python編程知識和常規(guī)的編程基礎(chǔ)內(nèi)容。 我們討論了Python的編程模型—過程式編程、函數(shù)式編程和面向?qū)ο缶幊獭?br>我們強調(diào)問題求解和算法設(shè)計。 我們?yōu)闇蕚溥M入產(chǎn)業(yè)界的學(xué)生提供了最佳實踐。 函數(shù)式編程貫穿全書。第4章中的一個圖表展示了Python中關(guān)鍵的函數(shù)式編程能力及其對應(yīng)的章節(jié)。 538個案例以及471道練習(xí)題和項目 學(xué)生通過動手實踐的方法,在廣泛選擇的真實案例、練習(xí)和項目(EEP)中開展學(xué)習(xí),這些內(nèi)容來自計算機科學(xué)、數(shù)據(jù)科學(xué)和其他很多領(lǐng)域。 538個案例的內(nèi)容均圍繞計算機科學(xué)、數(shù)據(jù)科學(xué)、人工智能和大數(shù)據(jù),從單個代碼片段到完整案例研究均有涉及。 471道練習(xí)題和項目自然地拓展了章節(jié)中的示例。每章都以一系列涵蓋了各種主題的練習(xí)作為結(jié)尾,這有助于教師根據(jù)受眾的需求調(diào)整課程內(nèi)容并且在每個學(xué)期布置不同的作業(yè)。 EEP向你提供了引人入勝的、富有挑戰(zhàn)性的、有趣的Python基礎(chǔ)知識,包括可以動手實驗的AI、計算機科學(xué)和數(shù)據(jù)科學(xué)項目。 學(xué)生將面對令人興奮且有趣的有關(guān)AI、大數(shù)據(jù)和云技術(shù)應(yīng)用問題的挑戰(zhàn),比如自然語言處理、Twitter數(shù)據(jù)挖掘、機器學(xué)習(xí)、深度學(xué)習(xí)、Hadoop、MapReduce、Spark、IBM Watson、關(guān)鍵的數(shù)據(jù)科學(xué)庫(NumPy、pandas、SciPy、NLTK、TextBlob、spaCy、BeautifulSoup、Textatistic、Tweepy、scikit-learn、Keras)、關(guān)鍵的可視化庫(Matplotlib、Seaborn、Folium)以及其他。 我們的EEP鼓勵你思考未來。下述案例研究雖然只出現(xiàn)在前言中,但本書包含了多個發(fā)人深省的類似項目:利用深度學(xué)習(xí)、物聯(lián)網(wǎng)以及電視攝像機(由體育賽事數(shù)據(jù)訓(xùn)練出來的),我們可以自動進行統(tǒng)計分析、回顧比賽細節(jié)以及即時回放,因此球迷不再需要忍受直播體育賽事的誤判和延遲。既然如此,我們可能會產(chǎn)生這樣的想法:可以使用這些技術(shù)來取消裁判。為什么不呢?我們已經(jīng)越來越多地把自己的生命托付給基于深度學(xué)習(xí)的技術(shù),比如機器人外科醫(yī)生和自動駕駛汽車。 項目練習(xí)鼓勵你更加深入地了解所學(xué)的知識并研究本書沒有涉及的技術(shù)。真正的項目通常規(guī)模更大,需要更多的網(wǎng)絡(luò)搜索和實現(xiàn)代價。 在教師手冊中,我們提供了許多練習(xí)的答案,包括第1~11章中核心的Python代碼。答案僅對教師可見,詳見后文中關(guān)于Pearson教師資源的介紹。但是我們沒有提供項目和研究練習(xí)的答案。 我們鼓勵你仔細觀看示例和開源代碼案例研究(詳見GitHub網(wǎng)頁),包括課程級別項目、學(xué)期級別項目、專業(yè)方向級別項目、畢業(yè)設(shè)計項目和畢業(yè)論文。 557道自我測驗題及其答案 平均每節(jié)后有三道自我測驗題。 自我測驗題的類型包括填空、判斷和討論,能幫你測試是否理解了所學(xué)的內(nèi)容。 IPython交互式自我測驗題可幫助你不斷嘗試并強化所學(xué)的編程技術(shù)。 為快速掌握所學(xué)知識,自我測驗題后面都跟有答案。 避免煩瑣的數(shù)學(xué)語言,多用自然語言進行解釋 數(shù)據(jù)科學(xué)的主題與數(shù)學(xué)高度相關(guān)。這本書將用作計算機科學(xué)和數(shù)據(jù)科學(xué)第一門課的教科書,學(xué)生可能沒有深厚的數(shù)學(xué)知識背景,所以我們避免了煩瑣的數(shù)學(xué)語言,把數(shù)學(xué)內(nèi)容留在高層次的課程中。 在案例、練習(xí)和項目中,我們關(guān)注數(shù)學(xué)的概念而不是細節(jié)。我們使用statistics、NumPy、SciPy、pandas等Python庫和其他的很多庫來解決問題,從而隱藏了數(shù)學(xué)復(fù)雜性。所以,學(xué)生能夠直接使用數(shù)學(xué)技術(shù)(如線性回歸),而不需要知道背后的數(shù)學(xué)知識。在機器學(xué)習(xí)和深度學(xué)習(xí)的案例研究中,我們專注于創(chuàng)建在“幕后”做數(shù)學(xué)運算的對象—這是基于對象編程的關(guān)鍵之一。這個做法等同于安全地駕駛一輛汽車前往目的地時不需要知道引擎、變速箱、動力轉(zhuǎn)向和防滑剎車系統(tǒng)背后的數(shù)學(xué)、工程和科學(xué)知識。 可視化 67張可視化結(jié)果圖幫助你理解概念,包含二維或三維的、靜態(tài)的、動態(tài)的、動畫的和交互式的圖表、圖形、圖片、動畫等。 我們關(guān)注由Matplotlib、Seaborn、pandas和Folium(用于交互式地圖)產(chǎn)生的高層可視化結(jié)果。 我們使用可視化作為教學(xué)工具。例如,我們使用動態(tài)擲骰子模擬和柱狀圖使大數(shù)定律“鮮活”起來。隨著投擲次數(shù)的增加,你將看到每個面在投擲總數(shù)中所占的百分比逐漸接近16.667%(1/6),代表百分比的柱條也趨于一致。 你需要了解自己的數(shù)據(jù)。一種簡單的辦法是直接看原始數(shù)據(jù)。即使是少量的數(shù)據(jù),你也可能很快迷失在細節(jié)當中。對于大數(shù)據(jù)而言,可視化對于數(shù)據(jù)探索和傳遞可復(fù)制的研究結(jié)果尤為重要,數(shù)據(jù)規(guī)?赡苁前偃f級的、上億級的甚至更為龐大。通常而言,一圖勝千言—在大數(shù)據(jù)中,一個可視化結(jié)果能夠比得上數(shù)據(jù)庫中數(shù)億甚至更多的個體。 有時候,你需要“飛到離數(shù)據(jù)40 000英尺高”才能在“大范圍”看到它。描述性統(tǒng)計當然有幫助,但是也可能產(chǎn)生誤導(dǎo)。你將在練習(xí)中研究Anscombe的四組數(shù)據(jù),這個案例通過可視化直觀地表明:差異顯著的數(shù)據(jù)集可能產(chǎn)生幾乎相同的描述性統(tǒng)計。 我們展示了可視化結(jié)果和動畫代碼以便你能夠自己實現(xiàn)。我們也通過Jupyter Notebook的形式給出動畫的源代碼文件,便于你自定義代碼和動畫參數(shù),進而重新執(zhí)行動畫,然后查看其帶來的影響。 許多練習(xí)都要求你創(chuàng)建自己的可視化結(jié)果。 數(shù)據(jù)經(jīng)驗 “數(shù)據(jù)科學(xué)本科課程建議”中提出:“數(shù)據(jù)經(jīng)驗需要在所有課程中扮演核心角色! 在本書的案例、練習(xí)和項目中,你將使用許多真實數(shù)據(jù)集和數(shù)據(jù)源。網(wǎng)上有各種免費的開源數(shù)據(jù)集供你實驗。有些我們參考的網(wǎng)站列出很多數(shù)據(jù)集,我們鼓勵你探索這些數(shù)據(jù)集。 我們收集了上百份教學(xué)大綱,追蹤了教師的數(shù)據(jù)集偏好,并研究了最流行的監(jiān)督機器學(xué)習(xí)、無監(jiān)督機器學(xué)習(xí)和深度學(xué)習(xí)的數(shù)據(jù)集。你將會用到的許多庫都附帶用于實驗的標準數(shù)據(jù)集。 你將學(xué)習(xí)如何進行數(shù)據(jù)獲取和分析準備,學(xué)習(xí)使用多種技術(shù)進行數(shù)據(jù)分析、模型調(diào)整并有效交流結(jié)果,特別是通過可視化。 像開發(fā)者一樣思考 你將以開發(fā)者為視角,使用像GitHub和StackOverflow一樣的流行網(wǎng)站并且進行大量的互聯(lián)網(wǎng)搜索!皵(shù)據(jù)科學(xué)入門”部分和第12~17章中的案例研究提供了豐富的數(shù)據(jù)經(jīng)驗。 GitHub為尋找開源代碼提供了一個優(yōu)秀的場所,你可以把代碼合并到自己的項目中(并將你的代碼貢獻到開源社區(qū)中)。它是軟件開發(fā)者版本控制工具庫中的重要組成部分,這些工具幫助開發(fā)團隊管理他們的開源(和私有)項目。 我們鼓勵你學(xué)習(xí)GitHub等網(wǎng)站上發(fā)布的代碼。 在為計算機科學(xué)和數(shù)據(jù)科學(xué)的職業(yè)生涯做準備的過程中,你將大量使用免費且開源的Python和數(shù)據(jù)科學(xué)庫,來自政府、工業(yè)界和學(xué)術(shù)界的真實數(shù)據(jù)集,以及免費、免費試用或免費增值的軟件和云服務(wù)。 動手實踐云計算 很多大數(shù)據(jù)分析發(fā)生在云端。在云端動態(tài)地度量你的應(yīng)用程序需要的硬件和軟件規(guī)模是比較容易的。你將會使用各種各樣的云服務(wù)(某些是直接的,某些是間接的),包括Twitter、Google翻譯、IBM Watson、Microsoft Azure、OpenMapQuest、geopy、Dweet.io 和 PubNub。你將在練習(xí)和項目中了解更多。 我們鼓勵你使用各種云服務(wù)供應(yīng)商提供的免費、免費試用或免費增值的服務(wù)。我們更喜歡那些不需要信用卡的,因為誰都不想承擔意外積攢巨額賬單的風(fēng)險。如果你決定使用需要信用卡的服務(wù),請確保你使用的免費層不會自動跳轉(zhuǎn)到支付層。 數(shù)據(jù)庫、大數(shù)據(jù)和大數(shù)據(jù)基礎(chǔ)設(shè)施 根據(jù)IBM(2016年11月)的數(shù)據(jù),全球90%的數(shù)據(jù)是在過去的兩年內(nèi)產(chǎn)生的。有證據(jù)表明,數(shù)據(jù)產(chǎn)生的速度正在加快。 根據(jù)2016年3月Analytics Week的一篇文章,五年內(nèi)將有超過500億臺設(shè)備連接到互聯(lián)網(wǎng),到2020年前,我們將每秒為地球上的每一個人產(chǎn)生1.7MB的新數(shù)據(jù)! 本書包含了對關(guān)系數(shù)據(jù)庫和帶有SQLite的SQL的探討。 數(shù)據(jù)庫是存儲和操作你要處理的大量數(shù)據(jù)的關(guān)鍵性大數(shù)據(jù)基礎(chǔ)設(shè)施。關(guān)系數(shù)據(jù)庫處理結(jié)構(gòu)化數(shù)據(jù),它們不適用于大數(shù)據(jù)應(yīng)用程序中的非結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù)。因此,隨著大數(shù)據(jù)的發(fā)展,為了有效處理這些數(shù)據(jù),NoSQL和NewSQL數(shù)據(jù)庫應(yīng)運而生。本書包含對NoSQL和NewSQL的概述,以及利用MongoDB JSON文件數(shù)據(jù)庫的動手實踐的案例研究。 第17章包含關(guān)于大數(shù)據(jù)硬件與軟件基礎(chǔ)設(shè)施的細致討論。 人工智能案例研究
---作者簡介---
保羅·戴特爾 (Paul Deitel) Deitel&Associates公司首席執(zhí)行官兼首席技術(shù)官,畢業(yè)于麻省理工學(xué)院,在計算機領(lǐng)域擁有38年的經(jīng)驗。他自1992年以來就為軟件開發(fā)人員教授專業(yè)課程,為包括思科、IBM、西門子、戴爾、NASA、北電網(wǎng)絡(luò)在內(nèi)的全球企業(yè)客戶提供了數(shù)百門編程課程。 哈維·戴特爾 (Harvey Deitel) Deitel&Associates公司董事長兼首席戰(zhàn)略官,在計算機領(lǐng)域擁有58年的經(jīng)驗。他在麻省理工學(xué)院獲得理學(xué)學(xué)士學(xué)位和碩士學(xué)位,在波士頓大學(xué)獲得博士學(xué)位。在1991年創(chuàng)立Deitel&Associates公司之前,他已經(jīng)獲得了波士頓大學(xué)的終身職位并擔任計算機科學(xué)系主任。Deitel品牌的出版物贏得了國際上的廣泛認可,并被翻譯為日語、德語、漢語等100多種語言出版。 通過與Pearson/Prentice Hall 44年的合作,Deitel&Associates公司以印刷物和電子書的形式出版了前沿的編程教科書和專業(yè)書籍,發(fā)布了前沿的編程方面的LiveLessons視頻課程、Safari-Live在線研討會和Revel交互式多媒體課程。如果你需要聯(lián)系Deitel&Associates公司和作者,或者希望給有講師指導(dǎo)的現(xiàn)場培訓(xùn)課程提出建議,請發(fā)送電子郵件至deitel@deitel.com。希望了解更多關(guān)于Deitel現(xiàn)場企業(yè)培訓(xùn)的信息,請訪問http://www.deitel.com/training。希望購買Deitel書籍的個人客戶,請訪問https://www.amazon.com/。公司、政府、軍隊和學(xué)術(shù)機構(gòu)的大宗訂單請直接與Pearson聯(lián)系。希望了解更多信息,請訪問https://www.informit.com/store/sales.aspx。
目 錄
譯者序 前言 閱讀前的準備工作 第1章 計算機和Python簡介1 1.1 簡介1 1.2 硬件和軟件2 1.2.1 摩爾定律3 1.2.2 計算機組成3 1.3 數(shù)據(jù)層級結(jié)構(gòu)4 1.4 機器語言、匯編語言和高級語言7 1.5 對象技術(shù)簡介8 1.6 操作系統(tǒng)10 1.7 Python13 1.8 庫14 1.8.1 Python標準庫15 1.8.2 數(shù)據(jù)科學(xué)庫15 1.9 其他流行的編程語言16 1.10 實踐練習(xí):使用IPython和 Jupyter Notebook17 1.10.1 將IPython的交互式模式 當作計算器使用17 1.10.2 使用IPython解釋器執(zhí)行 Python程序19 1.10.3 在Jupyter Notebook中 編寫和執(zhí)行代碼20 1.11 互聯(lián)網(wǎng)和萬維網(wǎng)24 1.11.1 互聯(lián)網(wǎng):網(wǎng)絡(luò)的網(wǎng)絡(luò)25 1.11.2 萬維網(wǎng):使互聯(lián)網(wǎng)變得對 用戶友好25 1.11.3 云計算25 1.11.4 物聯(lián)網(wǎng)26 1.12 軟件技術(shù)27 1.13 大數(shù)據(jù)有多大28 1.13.1 大數(shù)據(jù)分析32 1.13.2 數(shù)據(jù)科學(xué)和大數(shù)據(jù)正在 改變世界:用例33 1.14 案例研究:一個大數(shù)據(jù)移動 應(yīng)用34 1.15 數(shù)據(jù)科學(xué)入門:人工智能— 計算機科學(xué)和數(shù)據(jù)科學(xué)的交叉 學(xué)科35 第2章 Python程序設(shè)計概述41 2.1 簡介41 2.2 變量和賦值語句41 2.3 算術(shù)運算43 2.4 print函數(shù)、單引號字符串和 雙引號字符串47 2.5 三引號字符串48 2.6 從用戶處獲得輸入50 2.7 決策:if語句和比較操作符52 2.8 對象和動態(tài)類型56 2.9 數(shù)據(jù)科學(xué)入門:描述性統(tǒng)計學(xué) 基礎(chǔ)知識58 2.10 小結(jié)60 第3章 控制語句和程序開發(fā)63 3.1 簡介63 3.2 算法63 3.3 偽代碼64 3.4 控制語句64 3.5 if語句66 3.6 if...else和if...elif...else 語句69 3.7 while語句73 3.8 for語句74 3.8.1 可迭代變量、列表和 迭代器75 3.8.2 內(nèi)置range函數(shù)76 3.9 增廣賦值76 3.10 程序開發(fā):序列控制重復(fù)77 3.10.1 需求說明78 3.10.2 算法的偽代碼形式78 3.10.3 Python中算法的編碼79 3.10.4 格式化字符串79 3.11 程序開發(fā):衛(wèi)士控制重復(fù)80 3.12 程序開發(fā):嵌套控制語句83 3.13 內(nèi)置函數(shù)range:深入審視87 3.14 使用Decimal類型表達貨幣 總量88 3.15 break和continue語句91 3.16 布爾操作符and、or和not92 3.17 數(shù)據(jù)科學(xué)入門:趨中度量— 平均數(shù)、中位數(shù)、眾數(shù)95 3.18 小結(jié)96 第4章 函數(shù)102 4.1 簡介102 4.2 函數(shù)的定義102 4.3 多參數(shù)函數(shù)105 4.4 隨機數(shù)生成106 4.5 案例研究:碰運氣游戲109 4.6 Python標準庫112 4.7 math模塊函數(shù)113 4.8 IPython的Tab補全114 4.9 缺省形參值115 4.10 關(guān)鍵字實參116 4.11 任意實參表117 4.12 方法:屬于對象的函數(shù)118 4.13 作用域規(guī)則118 4.14 import:深入審視120 4.15 函數(shù)的實參傳遞:深入討論122 4.16 函數(shù)調(diào)用棧124 4.17 函數(shù)式程序設(shè)計126 4.18 數(shù)據(jù)科學(xué)入門:離中度量127 4.19 小結(jié)129 第5章 序列:列表和元組133 5.1 簡介133 5.2 列表133 5.3 元組138 5.4 序列解包140 5.5 序列切片143 5.6 del語句146 5.7 給函數(shù)傳遞列表147 5.8 列表排序148 5.9 序列搜索150 5.10 其他列表方法152 5.11 用列表模擬棧154 5.12 列表解析155 5.13 生成器表達式157 5.14 過濾器、映射和化簡158 5.15 其他序列處理函數(shù)160 5.16 二維列表162 5.17 數(shù)據(jù)科學(xué)入門:模擬和靜態(tài) 可視化166 5.17.1 擲600、60 000和6 000 000 次骰子的簡單圖示166 5.17.2 擲骰實驗的頻數(shù)和百分比 的可視化167 5.18 小結(jié)174 第6章 字典和集合182 6.1 簡介182 6.2 字典182 6.2.1 創(chuàng)建字典183 6.2.2 遍歷字典184 6.2.3 基本字典操作184 6.2.4 字典方法keys和 values186 6.2.5 字典比較188 6.2.6 樣例:學(xué)生成績字典188 6.2.7 樣例:詞頻統(tǒng)計189 6.2.8 字典方法update191 6.2.9 字典解析192 6.3 集合192 6.3.1 集合比較194 6.3.2 集合的數(shù)學(xué)操作196 6.3.3 集合的可變操作符和 方法197 6.3.4 集合解析199 6.4 數(shù)據(jù)科學(xué)入門:動態(tài)可視化199 6.4.1 了解動態(tài)可視化199 6.4.2 實現(xiàn)動態(tài)可視化202 6.5 小結(jié)204 第7章 使用NumPy進行面向 數(shù)組的編程208 7.1 簡介208 7.2 從已有數(shù)據(jù)中創(chuàng)建array209 7.3 array屬性210 7.4 用特定值填充array212 7.5 從值域中創(chuàng)建array212 7.6 列表和array的性能:引入 %timeit214 7.7 array操作符216 7.8 NumPy計算方法218 7.9 普適函數(shù)220 7.10 索引和切片221 7.11 視圖:淺拷貝223 7.12 深拷貝225 7.13 重塑和轉(zhuǎn)置226 7.14 數(shù)據(jù)科學(xué)入門:pandas Series 和DataFrame229 7.14.1 pandas Series229 7.14.2 DataFrame233 7.15 小結(jié)241 第8章 字符串:深入審視247 8.1 簡介247 8.2 格式化字符串248 8.2.1 表示類型248 8.2.2 域?qū)捄蛯R249 8.2.3 數(shù)值格式化250 8.2.4 字符串的format 方法251 8.3 拼接和重復(fù)字符串252 8.4 刪除字符串的空白符253 8.5 字符大小寫轉(zhuǎn)換254 8.6 字符串的比較操作符255 8.7 子串搜索255 8.8 子串替換257 8.9 字符串
你還可能感興趣
我要評論
|