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

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

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

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

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

圖1-4
【常見問題】
對于Python來說,不同的功能需要使用不同的庫,為什么它不將這些功能全部集合到自身呢?
這是因為Python的設計者從來沒想過要包攬所有的活兒,Python本身只提供基礎語法及一些常用的功能模塊。如果把所有功能都集中到Python上面,那么Python就會變得非常“臃腫”并且難以維護,運行速度也會變得非常慢。
對于其他功能,Python使用“分工”的方式來管理,不同的功能使用不同的庫。例如網(wǎng)絡爬蟲可以使用Scrapy,而數(shù)據(jù)分析可以用Pandas等。分工才能更好地管理,在實際開發(fā)中,需要用到什么功能,導入對應的庫即可。
對于Python來說,有那么一句話:學習Python,其實就是學習Python的各種庫。細想一下,這句話也是有一定道理的。
- 精通Nginx(第2版)
- Kubernetes實戰(zhàn)
- 微服務與事件驅動架構
- Java游戲服務器架構實戰(zhàn)
- 精通軟件性能測試與LoadRunner實戰(zhàn)(第2版)
- Practical Windows Forensics
- C程序設計案例教程
- 用戶體驗增長:數(shù)字化·智能化·綠色化
- Node Cookbook(Second Edition)
- Learning Continuous Integration with TeamCity
- iPhone應用開發(fā)從入門到精通
- 代替VBA!用Python輕松實現(xiàn)Excel編程
- Python函數(shù)式編程(第2版)
- Java EE程序設計與開發(fā)實踐教程
- 從零開始學UI設計·基礎篇