産品特色
內容簡介
《利用Python進行數據分析》講的是利用Python進行數據控製、處理、整理、分析等方麵的具體細節和基本要點。同時,它也是利用Python進行科學計算的實用指南(專門針對數據密集型應用)。
《利用Python進行數據分析》重點介紹瞭用於高效解決各種數據分析問題的Python語言和庫。《利用Python進行數據分析》沒有闡述如何利用Python實現具體的分析方法。
作者簡介
Wes McKinney,資深數據分析專傢,對各種Python庫(包括NumPy、pandas、matplotlib以及IPython等)等都有深入研究,並在大量的實踐中積纍瞭豐富的經驗。撰寫瞭大量與Python數據分析相關的經典文章,被各大技術社區爭相轉載。開發瞭用於數據分析的著名開源Python庫——pandas,廣獲用戶好評。在創建Lambda Foundry(一傢緻力於企業數據分析的公司)之前,他曾是AQR Capital Management的定量分析師。
精彩書評
“O’Reilly Radar博客有口皆碑。”
——Wired
“O’Reilly憑藉一係列(真希望當初我也想到瞭)非凡想法建立瞭數百萬美元的業務。”
——Business 2.0
“O’Reilly Conference是聚集關鍵思想領袖的絕對典範。”
——CRN
“一本O’Reilly的書就代錶一個有用、有前途、需要學習的主題。”
——Irish Times
“Tim是位特立獨行的商人,他不光放眼於長遠、廣闊的視野並且切實地按照Yogi Berra的建議去做瞭:‘如果你在路上遇到岔路口,走小路(岔路)。’迴顧過去Tim似乎每一次都選擇瞭小路,而且有幾次都是一閃即逝的機會,盡管大路也不錯。”
——Linux Journal
目錄
前言
第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框架)以實現並行處理循環進而大幅度提高數值算法的速度。"
……
前言/序言
針對科學計算領域的Python開源庫生態係統在過去10年中得到瞭飛速發展。2011年底,我深深地感覺到,由於缺乏集中的學習資源,剛剛接觸數據分析和統計應用的Python程序員舉步維艱。針對數據分析的關鍵項目(尤其是NumPy、matplotlib和pandas)已經很成熟瞭,也就是說,寫一本專門介紹它們的圖書貌似不會很快過時。因此,我下定決心要開始這樣的一個寫作項目。我在2007年剛開始用Python進行數據分析工作時就希望能夠得到這樣一本書。希望你也能覺得本書有用,同時也希望你能將書中介紹的那些工具高效地運用到實際工作中去。
本書的約定
本書使用瞭以下排版約定:
斜體(Italic)
用於新術語、URL、電子郵件地址、文件名與文件擴展名。
等寬字體(Constant width)
用於錶明程序清單,以及在段落中引用的程序中的元素,如變量、函數名、數據庫、數據類型、環境變量、語句、關鍵字等。
等寬粗體(Constant width bold)
用於錶明命令,或者需要讀者逐字輸入的文本內容。
等寬斜體(Constant width italic)
用於錶示需要使用用戶提供的值或者由上下文決定的值來替代的文本內容。
注意:代錶一個技巧、建議或一般性說明。
警告:代錶一個警告或注意事項。
示例代碼的使用
本書提供代碼的目的是幫你快速完成工作。一般情況下,你可以在你的程序或文檔中使用本書中的代碼,而不必取得我們的許可,除非你想復製書中很大一部分代碼。例如,你在編寫程序時,用到瞭本書中的幾個代碼片段,這不必取得我們的許可。
利用Python進行數據分析 [Python for Data Analysis] epub pdf mobi txt 電子書 下載 2024
利用Python進行數據分析 [Python for Data Analysis] 下載 epub mobi pdf txt 電子書
利用Python進行數據分析 [Python for Data Analysis] mobi pdf epub txt 電子書 下載 2024
利用Python進行數據分析 [Python for Data Analysis] epub pdf mobi txt 電子書 下載 2024