- Python數(shù)據(jù)科學實踐指南
- 紀路
- 1977字
- 2019-01-05 02:00:27
Foreword 前言
為什么要寫這本書
我接觸大數(shù)據(jù)技術(shù)的時間算是比較早的,四五年前當大數(shù)據(jù)這個詞火遍互聯(lián)網(wǎng)的時候,我就已經(jīng)在實驗室里學習編程及算法的知識。那個時候我一心想要做學術(shù),每天閱讀大量的英文文獻,主要興趣更多的是在機器人和人工智能上。研究生畢業(yè)時我本來想實現(xiàn)早先的愿望,繼續(xù)攻讀博士學位,不過思來想去覺得不應(yīng)該錯過大數(shù)據(jù)這個機會,所以毅然決定投入大數(shù)據(jù)行業(yè)中。
在工作之初,市面上已經(jīng)存在一些介紹大數(shù)據(jù)相關(guān)技術(shù)的權(quán)威著作,其中很多還是很底層的或特定領(lǐng)域的專著。但即使是我這種自詡為“學院派”的人看這些書,頭腦也會經(jīng)常開小差。而大數(shù)據(jù)相關(guān)的技術(shù)又特別龐雜,包括計算框架、網(wǎng)絡(luò)爬蟲、機器學習算法、編程語言、數(shù)據(jù)庫、文本分析、數(shù)據(jù)流水線的架構(gòu),甚至還包括前端可視化等眾多方面,只有對它們都有涉獵,才能更好地勝任相關(guān)的工作。所以我讀過很多的相關(guān)圖書,這確實為我以后的工作打下了堅實的基礎(chǔ),不過隨著工作內(nèi)容的增加,以及新同事的到來,更多的問題相繼涌現(xiàn)。首當其沖的就是,并不是每個人都有足夠的基礎(chǔ)來閱讀這些專業(yè)著作,而且每個人的情況各不相同,有的是編程基礎(chǔ)差,有的是數(shù)學基礎(chǔ)差,有的是英語基礎(chǔ)差,這也導致我的這套學習方法難以推廣開來。所以我想寫一本關(guān)于大數(shù)據(jù)技術(shù)的手冊,其目的并不是為讀者講明白所有技術(shù)背后的原理,而是告訴讀者某項技術(shù)可以用于哪些工作中,哪些工作需要哪些工具。
讀完這本手冊,可以幫助讀者建立一個相對完整的大數(shù)據(jù)生態(tài)的概念,其中所講的每一個工具都值得讀者進行更深入的研究(你也可以像我一樣,對其中的兩三項進行非常深入的研究),也許在研究過程中,你會成為該領(lǐng)域的專家。如果現(xiàn)在正在看這本書的你是一位技術(shù)決策者,那么我希望本書的介紹能幫助你下定決心使用其中的某項技術(shù),比如寫作全書的Python語言就是一門非常好的數(shù)據(jù)處理語言,它能快速編碼,且具有強大的字符串處理能力,擁有大量成熟的大數(shù)據(jù)類庫,這些都使Python成為數(shù)據(jù)科學領(lǐng)域無可爭議的No. 1語言;或許你的團隊可以僅用Python編寫大規(guī)模分布式爬蟲程序(雖然本書介紹的是單機的簡化版)就能大幅度地提升工作的效率。Scrapy可能是爬蟲領(lǐng)域最有名的框架了,你也可以像我一樣實現(xiàn)屬于你自己的版本。當然這本書也是一本Python入門書,所以讀者無須擔心閱讀門檻,你可以從零基礎(chǔ)開始學習,并體驗整個學習過程所帶來的愉悅。
讀者對象
根據(jù)工作職責的不同,我為本書劃分出了一些可能的讀者,具體如下。
? 想要了解大數(shù)據(jù)生態(tài)的學生。
? 需要快速入門大數(shù)據(jù)的技術(shù)人員。
? 需要了解技術(shù)細節(jié)以做決策的技術(shù)管理者。
? 希望入門Python但不知如何下手的編程愛好者。
如何閱讀本書
本書分為三部分,其中第1~4章是Python基礎(chǔ),這個部分會介紹閱讀本書所必須掌握的Python知識,但并不會包含很復雜的編程知識,比如面向?qū)ο缶幊叹筒皇潜匾模驗镻ython支持過程式編程,可以直接編寫函數(shù),使用這種方式編程更適合教學,因為所有的執(zhí)行步驟都是線性的,方便逐步講解。第5~7章講解的是Python直接提供的數(shù)據(jù)處理工具,這些工具包括一些易用的數(shù)據(jù)結(jié)構(gòu)、標準庫和第三方工具。學習這些工具可以讓我們快速地實現(xiàn)某些簡單的算法,而不用花費大量的時間“重復造輪子”,Python處理數(shù)據(jù)的高效性在此處將體現(xiàn)得淋漓盡致。第8~12章是一些實際的案例,將會涉及Python主要擅長的幾個領(lǐng)域:統(tǒng)計、爬蟲、科學計算、Hadoop&Spark中的集成、圖計算等。最后的三個附錄分別介紹了關(guān)于Python的一些擴展知識,比如如何編寫同時兼容Python 2和Python 3的代碼,如何安裝完整Python開發(fā)環(huán)境,以及一些常用的Python技巧,如處理時間、文件I/O等。
勘誤和支持
由于筆者的水平有限,編寫的時間也很倉促,書中難免會出現(xiàn)一些錯誤或不準確的地方,懇請讀者批評指正。另外本書的部分代碼會上傳到Github上,其網(wǎng)址為:https://github.com/magigo/data_science_tool_book_code。你可以將書中的錯誤發(fā)布在Issues中,或者向我提問,我會盡可能地回答你的問題。當然如果是比較好的問題我也希望你能在知乎上邀請我回答,這樣就能有更多的人受益于你的問題,我的知乎主頁為:https://www.zhihu.com/people/ji-lu-15-70。如果你有更多的寶貴意見,也歡迎你發(fā)送郵件至我的郵箱magi-go@126. com,我很期待能夠聽到你們的真摯反饋。
致謝
首先要感謝“仁慈的獨裁者”吉多·范羅蘇姆(Guido van Rossum),他在我出生的那一年(1989年)發(fā)明了Python編程語言,不僅為我?guī)砹艘环萑毜墓ぷ鳎€為我?guī)砹藷o盡的樂趣。而且我與Python似乎真的有著某種緣分,不僅出生年份相同,生肖也相同,不知道吉多是否知道1989年正好也是我國的農(nóng)歷蛇年呢。
感謝機械工業(yè)出版社華章公司的編輯Lisa邀請我寫作本書,剛開始時我樂觀地估計本書很快就能寫作完成。不過就像大多數(shù)軟件項目一樣——它延期了。感謝Lisa在百忙中適時地督促我寫作,沒有她我想這本書與讀者見面的時間還會延后。
最后我要特別感謝我的爸爸、媽媽和前女友(你知道我要強調(diào)“前”這個字),感謝你們促進了我的身心成長,是你們促使我變得像現(xiàn)在這般強大!
謹以此書,獻給我最親愛的家人,以及眾多熱愛Python的朋友們。
紀路
中國,北京,2017年1月
- Getting Started with Gulp(Second Edition)
- Visual Basic編程:從基礎(chǔ)到實踐(第2版)
- Spring Cloud、Nginx高并發(fā)核心編程
- Java程序設(shè)計與實踐教程(第2版)
- Building Minecraft Server Modifications
- OpenShift在企業(yè)中的實踐:PaaS DevOps微服務(wù)(第2版)
- ASP.NET程序設(shè)計教程
- Spring快速入門
- Microsoft Azure Storage Essentials
- Java零基礎(chǔ)實戰(zhàn)
- OpenCV with Python By Example
- Unity 2017 Game AI Programming(Third Edition)
- 青少年學Python(第2冊)
- Maven for Eclipse
- Python數(shù)據(jù)預處理技術(shù)與實踐