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