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