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