p數(shù)據(jù)分析基礎教程學習指南_第1頁
p數(shù)據(jù)分析基礎教程學習指南_第2頁
p數(shù)據(jù)分析基礎教程學習指南_第3頁
p數(shù)據(jù)分析基礎教程學習指南_第4頁
p數(shù)據(jù)分析基礎教程學習指南_第5頁
已閱讀5頁,還剩243頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、社區(qū)會員u ho g 專享 尊重社區(qū)會員 heruihong 專享 尊重社區(qū)會員 heruihong 專享 尊重歡迎加入非Python學習交流編程,群里提供500+本Python書籍!內容 提 要本書是 NumPy 的入門,主要NumPy 以及相關的 Python 科學計算庫,如 SciPy 和 Matplotlib。本書內容涵蓋 NumPy 安裝、數(shù)組對象、常用函數(shù)、矩陣運算、線性代數(shù)、金融函數(shù)、窗函數(shù)、質量、Matplotlib 繪圖、SciPy 簡介以及 Pygame 等內容,涉及面較廣。另外,Ivan Idris每個知識點給出了簡短而明晰的示例,并為大部分示例給出了實用場景(如本書可讀

2、性。分析),在幫助初學者入門的同時,提高了本書適合正在找尋高質量開源計算庫的科學家、工程師、程序員和定量管理分析師閱讀參考。 Ivan Idris著譯責任編輯執(zhí)行編輯責任印制郵電北京市豐臺區(qū)電子郵件 315路11號100164北京開本:8001000印張:15.25字數(shù):371千字 印數(shù):1 4 000冊印刷1/162014年 1 月第 1 版2014年 1 月北京第 1 次印刷圖字:01-2013-5239號著作權合同登記號定價:49.00元讀者服務:(010)51095186轉600 印裝質量反盜版:(010)81055315:(010)81055316工商廣0021 號經(jīng)營證:社區(qū)會員

3、heruihong 專享 尊重歡迎加入非Python學習交流編程,群里提供500+本Python書籍!Copyright 2013 Packt Publishing. First published in the English language under the title NumPyBeginners Guide, Second Edition.Simplified-language edition copyright 2014 by Posts & Telecom Press.s.本書中文簡體字版由Packt Publishing郵電獨家。者,不得以任何方式所有,或本書內容。社區(qū)會員

4、heruihong 專享 尊重歡迎加入非Python學習交流編程,群里提供500+本Python書籍!譯者序NumPy,即Numeric Python的縮寫,是一個優(yōu)秀的開源科學計算庫,并已經(jīng)成為Python科學計算系統(tǒng)的重要組成部分。NumPy為我們提供了豐富的數(shù)學函數(shù)、強大的數(shù)組對象以及優(yōu)異的運算性能。盡管Python作為流行的編程語言非常靈活易用,但它本身并非為科學計算量身定做,在開發(fā)效率和執(zhí)行效率上均不適合直接用于數(shù)據(jù)分析,尤其是大數(shù)據(jù)的分析和處理。幸運的是,NumPy為Python插上了翅膀,在保留Python語言優(yōu)勢的同時大大增強了科學計算和數(shù)據(jù)處理的能力。更重要的是,NumPy與

5、SciPy、Matplotlib、SciKits等其他眾多Python科學計算庫很好地結合在一起,共同構建了一個完整的科學計算 系統(tǒng)。毫不夸張地講,NumPy是使用Python 進行數(shù)據(jù)分析的一個必備工具。說起NumPy,我是在數(shù)據(jù)的“賽場”上與之結緣的。出于對數(shù)據(jù)挖掘和學習的,我與中國亮、和的同學一起組建了一支名為BrickMover的“比賽小分隊”,隊友包括龐、等。我們先后參加了一些國內外的數(shù)據(jù)挖掘比賽,包括推薦系統(tǒng)算法創(chuàng)新大賽、首屆中國計算學大賽暨RTB算法大賽、RecSys Challenge2013、ICDM Contest 2013等,并且取得了還算不錯的成績。無一例外的是,這些比

6、賽均需要對數(shù)據(jù)進行快速、全面的分析。感謝NumPy,它正是我們使用的數(shù)據(jù)分析利器之一。本書作為NumPy的入門,從安裝NumPy講起,涵蓋NumPy數(shù)組對象、常用函數(shù)、矩陣運算、線性代數(shù)、金融函數(shù)、窗函數(shù)、質量、Matplotlib繪圖、SciPy簡介以及Pygame等內容,涉及面較。書中對每個知識點均給出了簡短而明晰的示例,很適合初學者上手。大部分示例都有真實的應用場景(如分析),可讀性遠遠好于枯燥的文檔,幫助讀者在掌握NumPy使用技能的同時拓寬視野、拓展思維。本書的閱讀門檻不高,讀者只需具備基本的Python編程知識。在翻譯本書的過,我發(fā)現(xiàn)原作有不少地方不夠嚴謹,甚至還有一些錯誤。經(jīng)過反

7、復核對確認,我已經(jīng)修改了發(fā)現(xiàn)的錯誤,并在我認為不夠嚴謹?shù)牡胤揭宰g者注的形式給出了的理解,供讀者參考。此外,中的配圖為屏幕截圖,清晰度較低。為了讀者獲得最佳的閱讀體驗,我將書中的代碼全部運行了一遍,并輸出矢量圖以替換原有的配圖。需要說明的是,書中部分代碼將會最近一年的股價數(shù)據(jù),即數(shù)據(jù)的時間區(qū)段取決于代碼運行時的日期。因此,這部分代碼對應的新配圖會與中的配圖稍有差異,但對讀者有任何影響。社區(qū)會員 heruihong 專享 尊重歡迎加入非Python學習交流編程,群里提供500+本Python書籍!2譯者序感謝導師的力薦,他讓我有幸成書的譯者。王已有信息檢索導論大數(shù)據(jù):大規(guī)?;ヂ?lián)網(wǎng)數(shù)據(jù)挖掘與分布式處

8、理學習實戰(zhàn)等諸多譯著。他并不滿足于國外的優(yōu)質書籍,而是字斟句酌、不辭辛勞地完成同樣優(yōu)質的譯作與廣大中文讀者共饗,這份精神讓我深受鼓舞。也正因為此,我才鼓起勇氣接受了這次自我,不遺余力地完成了人生第一次翻譯工作。在這個過,要感謝公司的對譯稿提出細致嚴謹?shù)男薷囊庖?,感謝、等界同仁在審校、編輯階段給予的幫助。最后,感謝家人,以及BrickMover Team的小伙伴們對翻譯本書的支持。由于的專業(yè)水平和翻譯能力十分有限,加上時間倉促,譯稿中的疏漏之處在所難免,懇請讀者諒解。希望讀者通過新浪UCAS和個人郵箱i,不吝提出寶貴的修改意見和建議,共同努力不斷完善譯稿。對于每一個期望快速了解NumPy,卻又擔

9、心值得一讀。迷失在浩如煙海的文檔中的人,這本書2013年11月于中關村社區(qū)會員 heruihong 專享 尊重歡迎加入非Python學習交流編程,群里提供500+本Python書籍!獻給家人和朋友們。社區(qū)會員 heruihong 專享 尊重歡迎加入非Python學習交流編程,群里提供500+本Python書籍!關于審稿人Jaidev Deshpande是Enthought公司的一位實習生,他在那里主要做數(shù)據(jù)分析和數(shù)據(jù)可視化方面的工作。他是個狂熱的科學計算程序員,在信號處理、數(shù)據(jù)分析和中都有貢獻。學習的很多開源項目Alexandre Devert博士在中國科學技術大學從事數(shù)據(jù)挖掘和軟件工程的教學

10、工作。他同時也是一位研究員,從事最優(yōu)化問題的研究,并在生物技術創(chuàng)業(yè)公司中研究數(shù)據(jù)挖掘問題。在所有這些工作中,Alexandre非常樂于使用Python、NumPy和SciPy。Mark Livingstone曾為三家計算機公司(如今已不復)工作,在工程、支持、編程和培訓等部門任職。他厭倦了被裁員的遭遇。2011年,他從澳大利亞黃金海岸的Griffith大學畢業(yè),獲得學士學位。目前是他攻讀榮譽學士學位的最后一個學期,研究的是蛋白質相關的算法。研究工作中用到的軟件均是在Mac電腦上用Python寫成的。他的導師以及整個研究小組都感受到了Python編程的樂趣。Mark喜歡指導需要幫助的大一新生,他

11、是Griffith大學IEEE學生分會,也是Courthouse地區(qū)的太平紳士,曾經(jīng)擔任過信用合作社的主管,并將在2013年年底完成100次獻血的計劃。他在業(yè)余時間也很多產(chǎn),曾與人合作開發(fā)了S2 Salstat Statistics Packag(e 項目主頁.com/p/salstat-statistics-package-2/)。這是一個跨平臺的統(tǒng)計工具包,其中用到了wxPython、 NumPy、SciPy、SciKit、Matplotlib等許多Python模塊。Mikls Prisznyk是一位有自然科學背景的資深軟件工程師。他畢業(yè)于匈牙利歷史最悠久、規(guī)模最大的大學Etvs Lrnd

12、大學,從事物理專業(yè)工作。他于1992年完成了,研究了非的晶格量子場論的蒙特卡羅。在匈牙利物理研究中心工作三年后,他加入了布達佩斯的MultiRci Kft。這家公司是由一群物理學家創(chuàng)辦的,專注數(shù)學方法分析數(shù)據(jù)和數(shù)據(jù)。在那里,他的主要項目是小區(qū)域內的失業(yè)統(tǒng)計分析系統(tǒng),從那時候起,這一系統(tǒng)就一直被匈牙利用于公共就業(yè)服務。2000年他開始學習Python編程。2002年,他創(chuàng)辦了的咨詢公司,將Python用于所有能用的項目,服務于各種各樣的保險、和電子商務公司。他還曾在意大利 該項目主頁已過期并遷移至SourceForge。譯者注社區(qū)會員 heruihong 專享 尊重歡迎加入非Python學習交流

13、編程,群里提供500+本Python書籍!2關于審稿人工作,負責測試和優(yōu)化基于Python的Zope/Plone分布式應用程序。2007年的一家歐盟他移居英國,先是在一家蘇格蘭的創(chuàng)業(yè)公司工作,使用Twisted Python;隨后在英國航天工業(yè)部門工作,使用PyQt窗口工具包、Enthought應用程序框架,以及NumPy和SciPy。2012年,他回到匈牙利并重新加入MultiRci,目前的工作主要涉及OpenOffice/EuroOffice上的Python擴展模塊, 并再次使用NumPy和SciPy來讓用戶求解非線性問題和隨機優(yōu)化問題。Mikls喜歡旅行和閱讀,他廣泛,對自然科學、語言學

14、、歷史、政治、跳棋等均有涉獵。香濃的咖啡是他的最愛。不過,最美好的莫過于和他聰明的10歲大的兒子Zsombor一起享受時光。Nikolay Karelin擁有光學博士學位,有近20年利用各種方法進行數(shù)值和分析的經(jīng)驗,先后在學術界和工業(yè)界(從事光纖通信鏈路的)工作。在初識Python和NumPy后,他在過去的五年內逐漸將這些優(yōu)秀的工具用于幾乎所有數(shù)值分析和編寫工作。感謝家人,感謝他們在我審閱本書的一個個漫漫長夜所給予的理解與支持。社區(qū)會員 heruihong 專享 尊重歡迎加入非Python學習交流編程,群里提供500+本Python書籍!前言如今,科學家、工程師以及定量管理分析師著眾多的。數(shù)據(jù)

15、科學家們希望能夠用最小的編程代價在大數(shù)據(jù)集上進行數(shù)值分析,他們希望編寫的代碼可讀性好、執(zhí)行效率高、運行速度快,并盡可能地貼近他們熟悉的一系列數(shù)學概念。在科學計算領域,有很多符合這些要求的解決方案。在這方面,C、C+和Fortran等編程語言各有優(yōu)勢,但它們不是交互式語言,并且被很多人認為過于復雜。常見的商業(yè)還有、Maple和Mathematica。這些提供了強大的的開源工具,如語言,但和通用編程語言比起來,功能依然很有限。另外還有一些類似于R、GNU Octave和Scilab。顯然,作為編程語言,它們都不如Python強大。Python是一種流行的通用編程語言,在科學領域被廣泛使用。你很容易

16、在Python代碼中調用以前的C、Fortran或者R代碼。Python是面向對象語言,比C和Fortran更加高級。使用Python可以寫出易讀、整潔并且缺陷最少的代碼。然而,Python本身并不具有與等效的功能塊,而這恰恰就是NumPy Matplotlib。的意義。本書就是要NumPy以及相關的Python科學計算庫,如SciPy和NumPy是什么NumPy(Numerical Python的縮寫)是一個開源的Python科學計算庫。使用NumPy,就可以很自然地使用數(shù)組和矩陣。NumPy包含很多實用的數(shù)學函數(shù),涵蓋線性代數(shù)運算、葉變換和隨機數(shù)生成等功能。如果你的系統(tǒng)中已經(jīng)裝有LAPAC

17、K,NumPy的線性代數(shù)模塊會調用它,否則NumPy將使用實現(xiàn)的庫函數(shù)。LAPACK是一個著名的數(shù)值計算庫,最初是用Fortran寫成的,同樣也需要調用它。從某種意義上講,NumPy可以取代用戶進行快速的交互式原型設計。和Mathematica的部分功能,并且中,我們從程序開發(fā)者的角度來討論NumPy,而是地立足戶,從他們的角度來分析它。不過值得一提的是,NumPy是一個非?;钴S的開源項目,擁有很多的貢獻者,也許有一天你也能成為其中的一員!社區(qū)會員 heruihong 專享 尊重歡迎加入非Python學習交流編程,群里提供500+本Python書籍!2前言NumPy的由來NumPy的前身是Nu

18、meric。Numeric最早發(fā)布于1995年,如今已經(jīng)廢棄了。由于種種,不管是Numeric還是NumPy,都沒能進入Python標準庫,不過單獨安裝NumPy也很方便。關于NumPy在第1的安裝,詳細。早在2001年,一些開發(fā)者受Numeric的啟發(fā)共同開創(chuàng)了一個叫做SciPy的項目。SciPy是一個開源的Python科學計算庫,提供了類似于、Maple和Mathematica的許多功能。那段時間,人們對于Numeric越來越不滿。于是,Numarray作為Numeric的替代品問世了。Numarray在某些方面比Numeric更強大,但是它們的工作方式卻截然不同。鑒于此,SciPy繼續(xù)遵

19、循Numeric的工作方式,并延續(xù)了對Numeric數(shù)組對象的支持。雖然人們總是傾向于使用“最新最好”的軟件,但是Numarray依然催生出了一整套的系統(tǒng),包括很多周邊的實用工具軟件。2005年,SciPy的早期發(fā)起人之一Travis Oliphant決定改變這一狀況,他開始將Numarray的一些特性整合到Numeric中。一整套的代碼重構工作就此開始,并于2006年NumPy 1.0發(fā)布的時候全部完成。于是NumPy擁有了Numeric和Numarray的所有特性,并且還新增了一些功能。SciPy提供了一個升級工具,可以讓用戶方便地從Numeric 和Numarray升級到NumPy。由于

20、Numeric和Numarray均不再活躍更新,升級是必然的。如上所述,最初的NumPy其實是SciPy的一部分,后來才從SciPy中分離出來。如今,SciPy 在處理數(shù)組和矩陣時會調用NumPy。為什么使用NumPy對于同樣的數(shù)值計算任務,使用NumPy要比直接編寫Python代碼便捷得多。這是因為NumPy 能夠直接對數(shù)組和矩陣進行操作,可以省略很多循環(huán)語句,其眾多的數(shù)學函數(shù)也會讓編寫代碼的工作輕松許多。NumPy的底層算法在設計時就有著優(yōu)異的性能,并且經(jīng)受住了時間的考驗。NumPy中數(shù)組的效率和輸入輸出性能均遠遠優(yōu)于Python中等價的基本數(shù)據(jù)結構(如嵌套的list容器)。其能夠提升的性

21、能是與數(shù)組中元素的數(shù)目成比例的。對于大型數(shù)組的運算,使用NumPy的確很有優(yōu)勢。對于TB級的大文件,NumPy使用內存文件來處理,以達到最優(yōu)的數(shù)據(jù)讀寫性能。不過,NumPy數(shù)組的通用性不及Python提供的list容器,這是其不足之處。因此在科學計算之外的領域,NumPy的優(yōu)勢也就不那么明顯了。關于NumPy數(shù)組的技術細節(jié), 面詳細討論。在后NumPy的大部分代碼都是用C語言寫成的,這使得NumPy比純Python代碼高效得多。NumPy同樣支持C語言的API,并且在C源代碼上做的功能拓展。C API的內容不討論之社區(qū)會員 heruihong 專享 尊重歡迎加入非Python學習交流編程,群里

22、提供500+本Python書籍!前言3列。最后要記往一點,NumPy是開源的,這意味著使用NumPy可以享受到開源帶來的所有益處。價格低到了極限。你再也不用擔心每次有新成員加入團隊時,就要面對軟件及更新的問題了。開源代碼是向所有人開放的,對于代碼質量而言這是非常有利的。NumPy的局限性如果你是Java程序員,可能會對Jython感。Jython是Python語言在Java中的完整實現(xiàn)。遺憾的是,Jython運行在Java虛擬機上,無法調用NumPy,因為大部分NumPy模塊是用C語言實現(xiàn)的。Python和Jython可以說是完全不同的兩個世界,盡管它們實現(xiàn)的是同一套語言規(guī)范。當然,仍然有一些

23、變通方案,具體內容作者的另一本著作NumPy攻略中有所討論。本書內容第1章指導你在系統(tǒng)中安裝NumPy,并創(chuàng)建一個基本的NumPy應用程序。第2章NumPy數(shù)組對象以及一些基礎知識。第3章教你使用NumPy中最常用的基本數(shù)學和統(tǒng)計分析函數(shù)。第4章講述如何便捷地使用NumPy,包括如何選取數(shù)組的某一部分(例如根據(jù)一組值來選?。?、多項式擬合,以及NumPy對象的形態(tài)。第5章涵蓋了矩陣和通用函數(shù)的內容。矩陣在數(shù)使用廣泛,在NumPy中也有專門的對象來表示。通用函數(shù)(ufuncs)是一個能用于NumPy對象的標量函數(shù),該函數(shù)的輸入為一組標量, 并將生成一組標量作為輸出。第6章探討通用函數(shù)的一些基本模塊

24、。通用函數(shù)通??沙恕⒊?。到對應的數(shù)算,如加、減、第7章NumPy中的一些函數(shù)。作為NumPy用戶,我們時常發(fā)現(xiàn)有一些特殊的需求。幸運的是,NumPy能滿足我們的大部分需求。第8章怎樣編寫NumPy的單元測試代碼。第9章深入非常有用的Python繪圖庫Matplotlib。雖然NumPy本身不能用來繪圖,但是Matplotlib和NumPy兩者完美地結合在一起,其繪圖能力可與相媲美。第10章更詳細地SciPy。如前所述,SciPy和NumPy是有歷史淵源的,SciPy是一套高端Python科學計算框架,可以與NumPy共同使用。社區(qū)會員 heruihong 專享 尊重歡迎加入非Python學習

25、交流編程,群里提供500+本Python書籍!4前言第11章是本書的“餐后甜點”,這一章如何用NumPy和Pygame寫出有趣的。同時,我們也將從中“品嘗”到人工智能的“滋味”。閱讀條件要試驗本書中的代碼,你需要安裝最新版NumPy,因此要先安裝能夠運行NumPy的任一版Python。本書部分示例代碼采用Matplotlib進行繪圖,這些代碼不一定需要讀者全部運行,但依然推薦安裝Matplotlib。本書最后一章講的是SciPy,會討論一個使用SciKits的例子。以下是開發(fā)及測試示例代碼所需的軟件:q Python 2.7q NumPy 2.0.0.dev20100915q SciPy 0.

26、9.0.dev20100915q Matplotlib 1.1.1q Pygame 1.9.1q IPython 0.14.dev當然,我并不是要你在計算機上裝全這些軟件或者必須裝指定版本,但Python和NumPy是必須安裝的。讀者對象本書適合正在找尋高質量開源數(shù)學庫的科學家、工程師、程序員和分析師閱讀參考。讀者應具備一些基本的Python編程知識。此外,讀者應該是經(jīng)常與數(shù)學和統(tǒng)計學打交道,或起碼對它們感。排版約定本書會通過不同樣式區(qū)別不同類型的內容。下面給出部分樣式的示例及解釋。正文中的代碼格式如此處所示:“注意numpysum()函數(shù)中沒有使用for循環(huán)?!贝a段如下所示:def num

27、pysum(n):a = numpy.arange(n) * 2 b = numpy.arange(n) * 3 c = a + breturn c社區(qū)會員 heruihong 專享 尊重歡迎加入非Python學習交流編程,群里提供500+本Python書籍!前言5當我們希望你注意代碼中的某一部分時,會將相關的行或粗體表示:reals = np.isreal(xpoints) print Real number?, realsReal number? True True True True False False False False 命令行輸入輸出如下所示:fromnumpy.testin

28、g import rundocsrundocs(docstringtest.py)新術語和重要的名詞將用楷體表示。你在屏幕、菜單或“單擊Next按鈕進入下一界面?!笨蛑锌吹降奈谋緯捎眉哟謽邮剑壕婊蛑匾f明將寫在這里。小貼士和技巧將寫在這里。讀者反饋一直以來,我們都非常歡迎讀者朋友的意見反饋。請告訴我們你對本書的看法,以及你喜歡還是不喜歡書中的內容。你的意見對我們非常重要, 的收獲。努力使你從閱讀中得到最大如果希望提出一些反饋意見,敬請名。郵件至feedback,并請在郵件標題中寫如果你想看某方面的書并希望我們,請通過上的SUGGEST A TITLE表單提交選題建議,或郵件至suggest

29、。如果你是某個領域的們的作者指南。,或有寫書,歡迎,里面有我售后支持感謝你Packt的。我們有諸多售后支持服務,希望給你提供最大的附加價值。社區(qū)會員 heruihong 專享 尊重歡迎加入非Python學習交流編程,群里提供500+本Python書籍!6前言示例代碼如果你是代碼。如果你是在別處示例代碼以郵件形式的用戶并從那里了,可以從上配套的示例了本書,可以給你。并,我們會直接將勘誤盡管我們處處以保證內容的準確性,但錯誤仍在所難免。如果你在閱讀過發(fā)現(xiàn)錯誤并告知我們,不管是文字還是代碼中的錯誤,我們不勝感激。這樣做可使其他讀者免于困惑, 也能幫助我們不斷改進后續(xù)版本。如果你發(fā)現(xiàn)任何錯誤, 敬請.

30、com/support報告給我們,即在網(wǎng)頁上選擇你的,單擊errata submission form(提交勘誤),并輸入詳細描述。一旦你提出的錯誤被證實,你的勘誤將被接受并上傳至我們的,或加入到已有的勘誤列表中。若要查看已有勘誤,請并通過書名查找。關于盜版在網(wǎng)上,所有物的任何都會遭遇盜版問題。Packt非常重視保護工作。如果你在網(wǎng)上發(fā)現(xiàn)Packt副本,請立即向我們提供的地址或名稱,以便我們采取補救措施。敬請通過copyright我們,告知內容的。我們非常感激你的幫助。這將保護我們作者的利益,同時也使我們有能力繼續(xù)提供高品質的內容。疑難解答如果對本書的任何方面有疑問,歡迎力為你答疑解惑。郵件至

31、questions,盡最大努 也可在社區(qū)(iT)本書網(wǎng)頁。編者注 關于本書中文版的勘誤,請社區(qū)(iT)本書網(wǎng)頁提交。編者注社區(qū)會員 heruihong 專享 尊重歡迎加入非Python學習交流編程,群里提供500+本Python書籍!目錄NumPy 快速入門1動手實踐:創(chuàng)建自定義數(shù)據(jù)類型22一維數(shù)組的索引和切片23動手實踐:數(shù)組的切片和索引23動手實踐:改變數(shù)組的維度26第 1 章.11.2Python1動手實踐:在不同的操作系統(tǒng)上安裝 Python1Windows2動手實踐:在 Windows 上安裝 NumPy、

32、Matplotlib、SciPy 和 IPython2.數(shù)組的組合271.31.4動手實踐:組合數(shù)組27數(shù)組的分割30動手實踐:分割數(shù)組30數(shù)組的屬性32動手實踐:數(shù)組的轉換Linux4動手實踐:在 Linux 上安裝 NumPy、Matplotlib、SciPy 和 IPython5Mac OS X5動手實踐:在 Mac OS X 上安裝 NumPy、Matplotlib 和 SciPy5動手實踐:使用 MacPorts 或 Fink 安裝NumPy、SciPy、Matplotlib 和 IPython7編譯源代碼8數(shù)組對象8.本章小結351.71.8常用函數(shù)36文件讀寫3

33、6動手實踐:讀寫文件36CSV 文件37動手實踐:讀入 CSV 文件37第 3 章41.15平均價格(VWAP)38成交量加法8動手實踐:動手實踐:計算成交量平均價IPython:一個交互式 shell 工具11和幫助14格38算術平均值函數(shù)38本章小結153.6.1平均價格393.6.2 時間NumPy 基礎16NumPy 數(shù)組對象16第 2 章2.12.2取值范圍35動手實踐:找到最大值和最小值40統(tǒng)計分析41動手實踐:簡單統(tǒng)計分析41數(shù)組17動

34、手實踐:創(chuàng)建選取數(shù)組元素18NumPy 數(shù)據(jù)類型19數(shù)據(jù)類型對象20字符編碼20自定義數(shù)據(jù)類型21dtype 類的屬性...6率43股票率43動手實踐:分析股票日期分析45動手實踐:分析日期數(shù)據(jù)45周匯總48社區(qū)會員 heruihong 專享 尊重歡迎加入非Python學習交流編程,群里提供500+本Python書籍!2目錄動手實踐:匯總數(shù)據(jù)48真實波動幅度均值(ATR)52動手實踐:計算真實波動幅度均值52簡單移動平均線54動手實踐:計算簡單移動平均線54指數(shù)移動平均線56動手實踐:計算指數(shù)移動平均線56帶58通用函數(shù)的方法90動手實踐

35、:在 add 上調用通用函數(shù)的方法91算術運算93動手實踐:數(shù)組的除法運算93模運算95動手實踐:模運算95那契數(shù)列943.253.263.273.283.293.303.313.323.315.225.23帶58那契數(shù)列96動手實踐:繪制動手實踐:計算線性模型61茹曲線97價格61茹曲線97動手實踐:用線性模型動手實踐:繪制趨勢線63方波99動手實踐:繪制方波99鋸齒波和三角波100動手實踐:繪制鋸齒波和三角

36、波101位操作函數(shù)和比較函數(shù)102動手實踐:玩轉二進制位102本章小結104深入學習 NumPy 模塊105動手實踐:繪制趨勢線63ndarray 對象的方法66動手實踐:數(shù)組的修剪和壓縮67階乘67動手實踐:計算階乘67本章小結68便捷函數(shù)70相關性70動手實踐:股票相關性分析71多項式74動手實踐:多項式擬合74凈額成交量77動手實踐:計算 OBV78過程模擬79動手實踐:避免使用循環(huán)80數(shù)據(jù)平滑82動手實踐:使用 hanning 函數(shù)平滑數(shù)據(jù)82本章小結85矩陣和通用函數(shù)86矩陣86動手實踐:創(chuàng)建矩陣86從已有矩陣創(chuàng)建新矩陣88動手實踐:從已有矩陣創(chuàng)建新矩陣88通用函數(shù)89動手實踐:創(chuàng)建

37、通用函數(shù)89第 4 章4.10第 6 章86.196.20線性代數(shù)105動手實踐:計算逆矩陣105求解線性方程組107動手實踐:求解線性方程組107. 108特征值和特征. 108動手實踐:求解特征值和特征奇異值分解110動手實踐:分解矩陣110廣義逆矩陣112動手實踐:計算廣義逆矩陣112行列式113動手實踐:計算矩陣的行列式1134.11葉變換114快速第 5 章葉變換114動手

38、實踐:計算移頻115動手實踐:移頻116隨機數(shù)117. 117動手實踐:硬幣超幾何分布119. 119動手實踐:模擬秀社區(qū)會員 heruihong 專享 尊重歡迎加入非Python學習交流編程,群里提供500+本Python書籍!目錄3連續(xù)分布121動手實踐:繪制正態(tài)分布121對數(shù)正態(tài)分布122窗1337.307.317.32動手實踐:繪制數(shù)學函數(shù)139動手實踐:繪制的6.24 動手實踐:繪制對數(shù)正態(tài)分布122函數(shù)139sinc 函數(shù)140動手實踐:繪制 sinc 函數(shù)140本章小結142本章小結1236.257.337.347.35函數(shù).第 7 章124排序124動手

39、實踐:按字典序排序124復數(shù)126動手實踐:對復數(shù)進行排序126搜索127動手實踐:使用 searchsorted函數(shù)127數(shù)組元素抽取128動手實踐:從數(shù)組中抽取元素128金融函數(shù)129動手實踐:計算終值130現(xiàn)值131動手實踐:計算現(xiàn)值131凈現(xiàn)值131動手實踐:計算凈現(xiàn)值13.第 8 章 質量143斷言函數(shù)143動手實踐:使用 assert_almost_ equal 斷言近似相等144近似相等145動手實踐:使用 assert_approx_ equal 斷言近似相等145數(shù)組近似相等146動手實踐:斷言數(shù)組近似相等146數(shù)組相等147動手實踐:比

40、較數(shù)組147數(shù)組排序148動手實踐:核對數(shù)組排序148對象比較149動手實踐:比較對象149字符串比較149動手實踐:比較字符串150浮點數(shù)比較150動手實踐:使用 assert_array_ almost_equal_nulp 比較浮點數(shù) 151多 ULP 的浮點數(shù)比較151動手實踐:設置 maxulp 并比較浮點數(shù)151單元測試152動手實踐:編寫單元測試152nose 和測試裝飾器154動手實踐:使用測試裝飾器155文檔字符串157動手實踐:執(zhí)行文檔字符串測試157本章小結1577.

41、47.257.206率132內部率132動手實踐:計算內部分期付款133動手實踐:計算分期付款133付款期數(shù)133動手實踐:計算付款期數(shù)134利率134動手實踐:計算利率134窗函數(shù)1348.178.18窗135動手實踐:繪制48.25窗135動手實踐:使用窗平滑股價數(shù)據(jù)136漢明窗137動手實踐:繪制漢明窗137窗1387.277.287.29社區(qū)會員 heruihong 專享 尊重歡迎加入非Python學習交流編

42、程,群里提供500+本Python書籍!4目錄使用 Matplotlib 繪圖159簡單繪圖159信號處理190第 9 章10.710.8 動手實踐:檢測Q 股價的線性9.4趨勢190葉分析192動手實踐:對去除趨勢后的信號進行濾波處理192化194動手實踐:擬合正弦波195.動手實踐:繪制多項式函數(shù)15910.910.10格式字符串161動手實踐:繪制多項式函數(shù)及其導函數(shù)161子圖163動手實踐:繪制多項式函數(shù)及其導函數(shù)163財經(jīng)165動手實踐:繪制全年股票價格165直方圖167動手實踐:繪制股價分布直方圖167對數(shù)坐標圖169動手實踐:繪制股票成交量169散點圖17110

43、.1110.1210.1310.1410.1510.1610.1710.1810.1910.20. 197數(shù)值. 198動手實踐:計算29.139.14插值198動手實踐:一維插值198圖像處理200動手實踐:處理 Lena 圖像200音頻處理202動手實踐:重復音頻片段202本章小結204玩轉 Pygame205動手實踐:繪制股票率和成交量第 11 章11.411.511.6變化的散點圖171著色173動手實踐:根據(jù)條件進行著色173圖例和注釋175動手實踐:使用圖例和注釋175三維繪圖177Pygame2

44、05動手實踐:安裝 Pygame205Hello World2009.219.22. 206動手實踐:制作簡單動畫208動手實踐:使用 NumPy 和 Pygame中繪圖178動手實踐:在三制作動畫對象208Matplotlib211動手實踐:在 Pygame 中使用Matplotlib211屏幕像素214等高線圖179動手實踐:繪制色彩填充的等高11.711.8線圖179動畫180動手實踐:制作動畫180本章小結18511.911.1011.1111.1211.1311.1411.1511.1611.17屏幕像素214動

45、手實踐:人工智能216動手實踐:數(shù)據(jù)點聚類216第 10 章 NumPy 的擴展:SciPy183OpenGL 和 Pygame218和 Octave18310.1地毯218動手實踐:繪制10.2 動手實踐:保存和加載.mat 文件183. 221模擬統(tǒng)計184動手實踐:分析隨機數(shù)185樣本比對和 SciKits18710.310.410.5動手實踐:模擬生命221本章小結224率18710.6 動手實踐:比較股票對數(shù). 225突擊測驗社區(qū)會員 heruihong 專享 尊重歡迎加入非Python學習交流編程,群里提供500+本Python書籍!1NumPy快速入門讓我們開始吧。首先,如何在不

46、同的操作系統(tǒng)中安裝NumPy和相關軟件,并給出使用NumPy的簡單示例代碼。然后,簡單IPython,因此你,以(一種交互式shell工具)。如前言所述,SciPy和NumPy有著密切的將多次看到SciPy的身影。在本章的末尾,告訴你如何利用便你在受困于某個問題或不確定最佳的解題方法時,可以獲取幫助。本章涵蓋以下內容:q 在Windows、Linux和Macintosh操作系統(tǒng)上安裝Python、SciPy、Matplotlib、IPython和NumPy;q 編寫簡單的NumPy代碼;q 了解IPython;q 瀏覽文檔和相關。1.1PythonNumPy是基于Python的,因此在安裝Nu

47、mPy之前,我們需要先安裝Python。某些操作系統(tǒng)已經(jīng)默認安裝有Python環(huán)境,但你仍需檢查Python的版本是否與你將要安裝的NumPy版本兼容。Python有很多種實現(xiàn),包括一些商業(yè)化的實現(xiàn)和從而保證與NumPy兼容。使用CPython實現(xiàn),版。中,1.2動手實踐:在不同的操作系統(tǒng)上安裝 PythonNumPy在Windows、各種Linux版以及Mac OS X上均有二進制安裝包。如果你愿意,也 CPython是用C語言實現(xiàn)的Python解釋器。譯者注社區(qū)會員 heruihong 專享 尊重第1章 歡迎加入非Python學習交流編程,群里提供500+本Python書籍!2第 1 章

48、NumPy 快速入門可以安裝包含源代碼的版本。你需要在系統(tǒng)中安裝Python 2.4.x或更高的版本。操作系統(tǒng)中安裝Python的各個步驟。給出在以下(1) Debian和Ubuntu Debian和Ubuntu可能已經(jīng)默認安裝了Python,但開發(fā)者包(developmentheaders)一般默認安裝。在Debian和Ubuntu中安裝python和python-dev令如下:sudo apt-get install python sudo apt-get install python-dev(2) Windows Python的Windows安裝程序可以在。在這個站點中,我們也可以找到Mac OS X的安裝程序,以及Linux、Unix和Mac OS X下的源代碼包。(3) Mac Mac OS X中預裝了Python,而我們也可以通過MacPorts、Fink或者類似的包管理工具來獲取Python。舉例來說,可以使用如下命令安裝Python 2.7:sudo port install python27LAPACK并不是必需的,但如果需要,NumPy在安裝過將檢測并使用之。我們推薦大家安裝LAPACK以便應對海量數(shù)據(jù)的計算,因為它擁有高效的線性代數(shù)計算模塊。剛才做了些什么我們在Debian、Ubuntu、Windows和Mac操作系統(tǒng)中安裝了Python。1.3W

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論