本書講的是利用Python進行數據控制、處理、整理、分析等方面的具體細節和基本要點。同時,它也是利用Python進行科學計算的實用指南(專門針對數據密集型應用)。本書重點介紹了用于高效解決各種數據分析問題的Python語言和庫。《利用Python進行數據分析》沒有闡述如何利用Python實現具體的分析方法。
Wes McKinney,博學數據分析專家,對各種Python庫(包括NumPy、pandas、matplotlib以及IPython等)等都有深入研究,并在大量的實踐中積累了豐富的經驗。撰寫了大量與Python數據分析相關的經典文章,被各大技術社區爭相轉載,是Python和開源技術社區公認的人物之一。開發了用于數據分析的著名開源Python庫——pandas,廣獲用戶好評。在創建Lambda Foundry(一家致力于企業數據分析的公司)之前,他曾是AQR Capital Management的定量分析師。
前言
第1章 準備工作
本書主要內容
為什么要使用Python進行數據分析
重要的Python庫
安裝和設置
社區和研討會
使用本書
致謝
第2章 引言
來自bit.ly的1.usa.gov數據
MovieLens 1M數據集
1880-2010年間全美嬰兒姓名
小結及展望
第3章 IPython:一種交互式計算和開發環境
IPython基礎
內省
使用命令歷史
與操作系統交互
軟件開發工具
IPython HTML Notebook
利用IPython提高代碼開發效率的幾點提示
高級IPython功能
致謝
第4章 NumPy基礎:數組和矢量計算
NumPy的ndarray:一種多維數組對象
通用函數:快速的元素級數組函數
利用數組進行數據處理
用于數組的文件輸入輸出
線性代數
隨機數生成
范例:隨機漫步
第5章 pandas入門
pandas的數據結構介紹
基本功能
匯總和計算描述統計
處理缺失數據
層次化索引
其他有關pandas的話題
第6章 數據加載、存儲與文件格式
讀寫文本格式的數據
二進制數據格式
使用HTML和Web API
使用數據庫
第7章 數據規整化:清理、轉換、合并、重塑
合并數據集
重塑和軸向旋轉
數據轉換
字符串操作
示例:USDA食品數據庫
第8章 繪圖和可視化
matplotlib API入門
pandas中的繪圖函數
繪制地圖:圖形化顯示海地地震危機數據
Python圖形化工具生態系統
第9章 數據聚合與分組運算
GroupBy技術
數據聚合
分組級運算和轉換
透視表和交叉表
示例:2012聯邦選舉委員會數據庫
第10章 時間序列
日期和時間數據類型及工具
時間序列基礎
日期的范圍、頻率以及移動
時區處理
時期及其算術運算
重采樣及頻率轉換
時間序列繪圖
移動窗口函數
性能和內存使用方面的注意事項
第11章 金融和經濟數據應用
數據規整化方面的話題
分組變換和分析
更多示例應用
第12章 NumPy高級應用
ndarray對象的內部機理
高級數組操作
廣播
ufunc高級應用
結構化和記錄式數組
更多有關排序的話題
NumPy的matrix類
高級數組輸入輸出
性能建議
附錄A Python語言精要
第1章
準備工作
本書主要內容
本書講的是利用Python進行數據控制、處理、整理、分析等方面的具體細節和基本要點。同時,它也是利用Python進行科學計算的實用指南(專門針對數據密集型應用)。本書重點介紹了用于高效解決各種數據分析問題的Python語言和庫。本書沒有闡述如何利用Python實現具體的分析方法。
當書中出現“數據”時,究竟指的是什么呢?主要指的是結構化數據(structured data),這個故意含糊其辭的術語代指了所有通用格式的數據,例如:
多維數組(矩陣)。
表格型數據,其中各列可能是不同的類型(字符串、數值、日期等)。比如保存在關系型數據庫中或以制表符/逗號為分隔符的文本文件中的那些數據。
通過關鍵列(對于SQL用戶而言,就是主鍵和外鍵)相互聯系的多個表。
間隔平均或不平均的時間序列。
這絕不是一個完整的列表。大部分數據集都能被轉化為更加適合分析和建模的結構化形式,雖然有時這并不是很明顯。如果不行的話,也可以將數據集的特征提取為某種結構化形式。例如,一組新聞文章可以被處理為一張詞頻表,而這張詞頻表就可以用于情感分析。
大部分電子表格軟件(比如Microsoft Excel,它可能是世界上使用最廣泛的數據分析工具了)的用戶不會對此類數據感到陌生。
為什么要使用Python進行數據分析
許許多多的人(包括我自己)都很容易愛上Python這門語言。自從1991年誕生以來,Python現在已經成為受歡迎的動態編程語言之一,其他還有Perl、Ruby等。由于擁有大量的Web框架(比如Rails(Ruby)和Django(Python)),最近幾年非常流行使用Python和Ruby進行網站建設工作。這些語言常被稱作腳本(scripting)語言,因為它們可以用于編寫簡短而粗糙的小程序(也就是腳本)。我個人并不喜歡“腳本語言”這個術語,因為它好像在說這些語言無法用于構建嚴謹的軟件。在眾多解釋型語言中,Python較大的特點是擁有一個巨大而活躍的科學計算(scientific computing)社區。進入21世紀以來,在行業應用和學術研究中采用Python進行科學計算的勢頭越來越猛。
在數據分析和交互、探索性計算以及數據可視化等方面,Python將不可避免地接近于其他開源和商業的領域特定編程語言/工具,如R、MATLAB、SAS、Stata等。近年來,由于Python有不斷改良的庫(主要是pandas),使其成為數據處理任務的一大替代方案。結合其在通用編程方面的強大實力,我們可以只使用Python這一種語言去構建以數據為中心的應用程序。
把Python當做粘合劑
作為一個科學計算平臺,Python的成功部分源于其能夠輕松地集成C、C 以及Fortran代碼。大部分現代計算環境都利用了一些Fortran和C庫來實現線性代數、挑選、積分、快速傅里葉變換以及其他諸如此類的算法。許多企業和國家實驗室也利用Python來“粘合”那些已經用了30多年的遺留軟件系統。
大多數軟件都是由兩部分代碼組成的:少量需要占用大部分執行時間的代碼,以及大量不經常執行的“粘合劑代碼”。粘合劑代碼的執行時間通常是微不足道的。開發人員的精力幾乎都是花在優化計算瓶頸上面的,有時更是直接轉用更低級的語言(比如C)。
最近這幾年,Cython項目已經成為Python領域中創建編譯型擴展以及對接C/C 代碼的一大途徑。
解決“兩種語言”問題
很多組織通常都會用一種類似于領域特定的計算語言(如MATLAB和R)對新的想法進行研究、原型構建和測試,然后再將這些想法移植到某個更大的生產系統中去(可能是用Java、C#或C 編寫的)。人們逐漸意識到,Python不僅適用于研究和原型構建,同時也適用于構建生產系統。我相信越來越多的企業也會這樣看,因為研究人員和工程技術人員使用同一種編程工具將會給企業帶來非常顯著的組織效益。
為什么不選Python
雖然Python非常適合構建計算密集型科學應用程序以及幾乎各種各樣的通用系統,但它對于不少應用場景仍然力有不逮。
由于Python是一種解釋型編程語言,因此大部分Python代碼都要比用編譯型語言(比如Java和C )編寫的代碼運行慢得多。由于程序員的時間通常都比CPU時間值錢,因此許多人也愿意在這里做一些權衡。但是,在那些要求延遲非常小的應用程序中(例如高頻交易系統),為了盡較大可能地優化性能,耗費時間使用諸如C 這樣更低級、更低生產率的語言進行編程也是值得的。
對于高并發、多線程的應用程序而言(尤其是擁有許多計算密集型線程的應用程序),Python并不是一種理想的編程語言。這是因為Python有一個叫做全局解釋器鎖(Global Interpreter Lock,GIL)的東西,這是一種防止解釋器同時執行多條Python字節碼指令的機制。有關“為什么會存在GIL”的技術性原因超出了本書的范圍,但是就目前來看,GIL并不會在短時間內消失。雖然很多大數據處理應用程序為了能在較短的時間內完成數據集的處理工作都需要運行在計算機集群上,但是仍然有一些情況需要用單進程多線程系統來解決。
這并不是說Python不能執行真正的多線程并行代碼,只不過這些代碼不能在單個Python進程中執行而已。比如說,Cython項目可以集成OpenMP(一個用于并行計算的C框架)以實現并行處理循環進而大幅度提高數值算法的速度。"
……
“O’Reilly Radar博客有口皆碑。”
——Wired
“O’Reilly憑借一系列(真希望當初我也想到了)非凡想法建立了數百萬美元的業務。”
——Business 2.0
“O’Reilly Conference是聚集關鍵思想領袖的典范。”
——CRN
“一本O’Reilly的書就代表一個有用、有前途、需要學習的主題。”
——Irish Times
“Tim是位特立獨行的商人,他不光放眼于最長遠、最廣闊的視野并且切實地按照Yogi Berra的建議去做了:‘如果你在路上遇到岔路口,走小路(岔路)。’回顧過去Tim似乎每一次都選擇了小路,而且有幾次都是一閃即逝的機會,盡管大路也不錯。”
——Linux Journal
難得花時間讀了70%以上的技術書,作為數據分析的入門應該不錯,讓你對這些工具有個感性的認識,作者自己是做金融分析的,很多專業內容不作解釋就順手拈來,要搞懂書上提到的所有內容不容易,需要有一定的知識儲備才行,總之拿來入門還算不錯,看完想直接拿來應用還是需要實踐的。
書挺好的,完好無損,學習python數據分析很棒
有編程基礎的可以購買,從計算機數據挖掘需要一定的毅力,書很好。
包裝很好,希望看完了之后python技術可以有所提高~
當當購物體驗這次真的太挫了,不管是物流,還是網站本身...希望改進啊...
發貨神速,沒有磕碰!還沒看,聽說是入門到高級的好書,贊一個
整體感覺不錯,但我希望Numpy框架講的更詳細一點
社區公認的權威人物之一。開發了用于數據分析的著名開源庫——,廣獲用戶好評。在創
不如叫做python重要第三方庫概述,純語法,用到可以上網找,沒很大必要特意去出書,畢竟真沒必要看那么全面的語法
書質量不錯,內容也很好,Python現在很火,也確實有實用,值得一學。
和學習手冊一個毛病,客服催單,兩天到了。沒催之前,三天都沒動靜。所以以后大家要是書老不來,找人工客服吧。
昨天晚上買的,今天早上就到了,快到讓我懷疑人生。印刷質量很好,粗略翻看了一下,基本能滿足需求,手動5分!
看了一下,內容還是不錯的,不過有這些內容已經不是太適合了,要去看作者的github才行。
老弟買來進行專業課學習的,這本書對于計算機專業的學生來說是一本很好的學習用書
昨晚拿到手就開始學習了,老外的講解很細致,譯者很負責,在關鍵的地方會有提示引導,挺不錯的
包裝很好,沒有破損。書的紙張,也很好,是正版。該書適合已經有一些python基礎的人使用。如果純粹做數據分析,還是用R語言比較好。給個好評吧!
通過實例逐步深入,可以有效的引導讀者探知數據分析的核心
書的紙張相當的不錯,本書的內容講了python中Numpy和pandas等幾個包的數據分析方法,還沒來得及具體看。
內容很充實,手把手教你用python做數據分析
還沒有看,開始學習入門基礎教程,之后再看數據分析
這本書是Pandas的模塊作者寫的書。總的來說Python提供了很多方便,但是這種方便還是需要付出一定的學習成本的。
屬于有一定Python還有數據分析基礎的人學習的書本,是正版,不管是頁面還是包裝都不錯
還沒開始看,但Python用于數據分析很有用。
數據分析的入門教材。建議你用python,而這本書介紹了python用于數據分析的幾個常用的python庫。作為一本基礎教材,還是很棒的!
非常好的一本Python進階書籍,看了一段時間感覺收獲頗豐,不僅內容詳實,而且有不少實例可以練手。此外書的質感和打印質量相當不錯,總體來說算是一次很贊的購書體驗
正在學Python和大數據,還沒看多少,不過感覺書還不錯
如果你不想學復雜的編程語言又想自由實現算法,用python來快速實現算法將是最佳選擇,本身是我目前見過的唯一一本系統講解python數據分析的書
入門書,零基礎看了這本書也能用python的pandas和matplotlib進行一些簡單的數據分析,數據分析不在乎用什么工具,而是有目的地去找一y些insight,下一步我需要達到的效果是:如果產生一個想法,能用工具快速驗證(如數據預處理,繪出圖標等)。唯一缺點就是沒有源代碼提供
生命的盡頭,就像人在黃昏時分讀書,讀啊讀,沒有察覺到光線漸暗;直到他停下來休息,才猛然發現白天已經過去,天已經很暗;再低頭看書卻什么都看不清了,書頁已不再有意義。