數據分析師養成(4):學慣用Python進行數據分析(篇一基礎認識)

Python由於其靈活易於上手的特點,已經成為現在數據分析和機器學習的首選語言,在這篇文章和接下來的文章里,我將從Python語言的基本特點和原理和實際與應用出發,讓讀者能夠在較短的時間熟悉了解如何用python控制、處理、整理、分析結構化數據,這是我的目的。

本文是《用Python進行數據分析》的第一篇,基礎理論篇,不涉及太多實操,建議耐心閱讀,對Python的語言能有一個初步並且正確的認識。

當然,學習好一門語言不是一朝一夕能夠完成的事情,多學多練,持之以恆,為上策。

(VX公眾號:人人都會數據分析,諮詢建議可以留言)

(歡迎點贊,你們的支持是我持續更新的動力)

一、為什麼要用Python進行分析,它有什麼優點缺點?

Python在眾多編程語言中能夠脫穎而出取決於它的最大特點——擁有一個巨大而活躍的科學計算社區。在數據分析和交互、探索性計算以及數據可視化等方面,Python不可避免地接近其他開源和商業的領域特定編程語言/工具,如R、SAS等。但是由於Python有不斷改良的庫(pandas是我們主要要使用和學習的庫)。使其成為數據處理任務的一大替代解決方案,而且結合其在編程方面的強大實力,我們完全可以只使用Python這一種語言去構建以數據為中心的應用程序。

除此之外,它還有另外一點你需要重要了解的特點,就是它獨特的粘合和集成作用,它能夠輕鬆集成C、C++以及Fortran代碼,具有極高的適應性。而且,Python用處廣泛,不僅適用於研究和原型構建,同時也適用於構建生產系統,它可以一種語言多種用途。也就是說,這是我們打開計算機世界和數據分析世界的一塊極好的敲門磚,有效提高企業的生產率。

同時,雖然Python非常適合構建計算密集型科學應用程序以及各種各樣的通用系統,但它對於不少場景仍然力有不逮。

  • 運行慢,由於Python時一種解釋型編程語言,因此大部分Python代碼都需要比用編譯型(Java等)編寫的程序運行要慢很多。這就要考慮時間與生產率哪個更重要了,程序員的時間通常比CPU的時間要值錢;但是在那些要求延遲非常小的應用程序中(例如高頻交易系統),為了最大可能地優化效率,耗費時間使用諸如C++這樣更低級、更低生產率的語言進行編程也是值得的。
  • 對於高並發、多線程的應用程序而言,Python並不是理想的編程語言。這是因Python有一個叫做全局解釋器鎖的東西。

二、介紹幾種Python比較重要的庫

NumPy

NumPy(Numercial Python的簡稱)時Python科學計算的基礎包,數據分析所用的庫大部分都是基於NumPy構建的,它提供以下功能(有更多功能):

  • nadarray,一個具有矢量算術運算和複雜廣播能力的快速且節省空間的多維數組
  • 用於對整組數據進行快速運算的標準數學函數(無需編寫循環)
  • 用於讀寫磁碟數據的工具以及用於操作內存映射文件的工具
  • 線性代數、隨機數生成以及傅里葉變換功能
  • 用於集成由c、c++、fortran等語言編寫的代碼的工具

除了為Python提供快速的數組處理能力,NumPy在數據分析方面還有一個主要作用是作為在演算法之間傳遞數據的容器。對於數值型數據,NumPy數組在存儲和處理數據時要比內置的Python結構高效的多。此外,由低級語言(比如C)編寫的庫可以直接操作NumPy數組中的數據,無需進行任何數據複製工作。

pandas

pandas提供了使我們能夠快速便捷地處理結構化數據的大量數據結構和函數。你很快就能發現,它是使Python成為強大而高效的數據分析環境因素之一。pandas用的最多的對象就是DataFrame。

pandas兼具NumPy高性能的數組計算功能以及電子表格以及關係型資料庫(如SQL)靈活的數據處理功能。它提供複雜精細的索引功能,以便更為快捷地完成重塑、切片和切塊、聚合以及選取數據子集等操作。

對於金融行業地用戶,pandas提供了大量適用於金融數據的高性能時間序列功能和工具。

pandas這個名字本身源於panel data(面板數據,這是計量經濟學中關於多維結構化數據集的一個術語)以及Python data analysis(Python數據分析)

matplotlib

最流行的用於繪製數據圖表的Python表,與IPython結合得很好,因而提供了一種非常好用的互動式數據繪圖環境。繪製的圖表也是互動式的,可以利用會與窗口的工具欄放大圖表中的某個區域或對整個圖表平移瀏覽。

IPython

IPython是Python科學計算工具集的組成部分,它將其他所有其他的東西聯繫到一起,為互動式和探索式計算提供了一個強健而高效的環境。它是一個增強的Python shell,目的是提高編寫、測試、調試Python代碼的速度。

功能很全面,主要用於互動式數據處理和利用matplotlib對數據進行可視化處理。

我使用的可以就是IPython

SciPy

SciPy是一組專門解決科學計算中各種標準問題的包的集合。

三、下載安裝和數據分析環境

Python的編寫環境,推薦使用Anaconda。Anaconda是專業的數據科學計算環境,已經集成絕大部分包和工具,不需要多餘的安裝和調試。

Python版本建議3.0以上,我使用的版本是3.7,官網下載,Welcome to Python.org。

Anaconda在官網continuum.io/downloads 下載,選擇最新版本,約400MB。

完成安裝後,Win版本會多出幾個程序,數據分析最常用的程序叫Jupyter,以前被稱為IPython Notebook,是一個互動式的筆記本,能快速創建程序,支持實時代碼、可視化和Markdown語言。

點擊快捷方式,待運行完成後便會在瀏覽器里出現,創建了本地環境localhost:

單擊New,選擇Python,便能夠創建我們的第一個程序:

在輸入 print(橙子先生up),並按shift+enter,到此為止,運行了我們的第一個Python程序,並且可以儲存為.py、.ipynb等各種形式。

Jupyter界面由上部的工具欄和下面主體的輸入區域組成,大家可以嘗試熟悉一下。

第一篇教程就到這裡了,下一篇具體介紹我們的NumPy庫和pandas庫,準備安裝好一起敲代碼吧。


推薦閱讀:

print or plan and not print()()() 的疑問?
Python 家族有多龐大
Python爬蟲|Python爬蟲入門(二):請求
如何優雅的「輪帶逛」初級篇——獲取單張圖片

TAG:Python | 数据分析 | 数据分析师 |