- 從0到1:Python數據分析
- 莫振杰
- 6字
- 2022-12-20 18:27:22
第一部分 NumPy篇
第1章 數據分析概述
1.1 數據分析簡介
1.1.1 數據科學是什么?
隨著大數據及人工智能時代的來臨,數據科學變得越來越重要。所謂數據科學,用最簡單的一句話來解釋就是:處理數據的科學。
網絡爬蟲、數據分析、數據可視化、機器學習……
在日常學習或工作中,我們或多或少都聽過上面這些名詞。但是大多數人只停留在了解上,并不知道這些名詞的背后其實是有著深層次聯系的。如果想要從數據中提煉出有用的信息,一般流程是下面這樣的:
獲取數據→處理數據→展示數據。
網絡爬蟲用于獲取數據,數據分析用于處理數據,數據可視化用于展示數據。而機器學習則是進一步對數據進行建模,以便進行預測分析。對于數據科學來說,它的工作流可以總結成“OSEMN”,如表1-1和圖1-1所示。
表1-1 數據科學的工作流

圖1-1是一張非常有價值的圖,從中我們可以得到非常重要的兩點信息:①Python不同領域之間的關系;②不同領域都會用到什么庫。有了這張圖,我們在接觸Python各個領域的時候,會有一個清晰的學習路線。

圖1-1
1.1.2 數據分析是什么?
數據分析,也就是數據科學中“Scrub”(清洗數據)這一環節。它指的是在統計學理論的支持下,使用合理的工具對相關數據進行一定程度的處理,然后把隱藏在數據中的重要信息提煉出來。
通過數據分析,我們可以挖掘出數據的內在規律及有用信息,進而幫助企業創造新的商業價值、提高運營效率、獲得持續競爭的優勢等。數據分析這種方式更加科學準確,遠不是只憑個人經驗(也就是“我覺得”)這種方式能比的,所以現在的企業越來越重視數據分析。
可能很多讀者都聽過“啤酒和紙尿褲的故事”(見圖1-2)。為什么沃爾瑪將看似毫不相干的啤酒和紙尿褲擺在一起銷售,并且它們的銷量雙雙增長呢?這是因為沃爾瑪很好地運用了數據分析手段,挖掘出了啤酒和紙尿褲之間的潛在關系。

圖1-2
除了商業領域,數據分析在其他領域也有著大量的應用,例如科學研究、社會調查、體育競技等。
1.1.3 應該學些什么?
如果想要成為一名真正的數據分析師,那么至少要掌握這3個工具:Excel、Python、SQL。由于本書針對的是Python方面的內容,所以Excel和SQL這兩個工具就不在本書中展開介紹了。
那么問題來了:學習Python數據分析,我們應該學些什么呢?對于Python數據分析來說,它有非常重要的3個庫:NumPy、Pandas、Matplotlib。這3個庫又被叫作Python數據分析“三劍客”(見圖1-3),本書就是緊緊圍繞這3個庫來展開介紹的。

圖1-3
可能有些讀者會問:“既然Excel可以做數據分析,為什么還要使用Python呢?”雖然Excel好用,但是它更適合處理中小量數據,而不適合處理大量數據(也就是所謂的大數據)。Python處理大量數據的效率,遠遠不是Excel能比得上的。
除了執行效率比Excel高之外,Python的工作量也少很多。業界有一句比較有意思的話:“Excel十分鐘,Python兩行代碼。”這句話恰恰說明了Python的簡單高效。
最后需要說明的是,Python雖然是一門編程語言,但是它在數據分析上實現的功能和Excel是非常相似的。所以,我們在學習Python數據分析時,應該和Excel多多進行對比,這樣更能加深理解和記憶,如圖1-4所示。

圖1-4
【常見問題】
對于Python來說,不同的功能需要使用不同的庫,為什么它不將這些功能全部集合到自身呢?
這是因為Python的設計者從來沒想過要包攬所有的活兒,Python本身只提供基礎語法及一些常用的功能模塊。如果把所有功能都集中到Python上面,那么Python就會變得非常“臃腫”并且難以維護,運行速度也會變得非常慢。
對于其他功能,Python使用“分工”的方式來管理,不同的功能使用不同的庫。例如網絡爬蟲可以使用Scrapy,而數據分析可以用Pandas等。分工才能更好地管理,在實際開發中,需要用到什么功能,導入對應的庫即可。
對于Python來說,有那么一句話:學習Python,其實就是學習Python的各種庫。細想一下,這句話也是有一定道理的。
- Python快樂編程:人工智能深度學習基礎
- Docker技術入門與實戰(第3版)
- Photoshop智能手機APP UI設計之道
- Vue.js前端開發基礎與項目實戰
- Hands-On GPU:Accelerated Computer Vision with OpenCV and CUDA
- 軟件品質之完美管理:實戰經典
- 新一代SDN:VMware NSX 網絡原理與實踐
- TMS320LF240x芯片原理、設計及應用
- Python Machine Learning Blueprints:Intuitive data projects you can relate to
- 現代C:概念剖析和編程實踐
- 3D Printing Designs:Octopus Pencil Holder
- Android開發權威指南(第二版)
- Java算法從菜鳥到達人
- Learning RSLogix 5000 Programming
- Getting Started with Backbone Marionette