Numpy 簡介

1. 什么是 NumPy?
Numpy,(Numerical Python 的縮寫),它是 Python 語言的一個擴展程序庫,支持數組結構與矩陣運算,并且針對數組運算提供大量便捷的數學函數庫。Numpy 大大簡化了向量和矩陣的操作及處理流程,降低了數據開發的門檻。除了做數值計算和統計分析,在程序中處理和調試高級用例的時候,熟練掌握 Numpy 所帶來的優勢和便利也不言而喻。
縱觀 Python 的開發生態,Numpy 在數據分析、機器學習和科學計算領域,有著舉足輕重的定位。數據分析用到的 Pandas ,數據挖掘和深度學習用到的 Scikit-learn 和 Tensorflow,以及科學計算常用的 SciPy ,都是以 Numpy 為基礎進行開發的。
2. NumPy 的特點
NumPy 是一個運行速度非??斓臄祵W庫,主要包含如下能力:
- 一個高效的 N 維數組對象 ndarray;
- 廣播功能函數,無須循環即可對數組進行快速運算;
- 讀寫磁盤以及操作內存映射文件;
- 一個用于集成 C / C++ / Fortran 代碼的工具;
- 線性代數、傅里葉變換、隨機數生成等功能。
其中 ndarray 對象是 NumPy 包的核心,ndarray 對象和標準的 Python 序列數據結構的顯著區別在于:
- ndarray 對象在創建時有固定的大小,這一點不同于 Python 列表。
- ndarray 對象中的元素都具有相同的數據類型,因此在存儲器中將具有相同的大小
- ndarray 對象便于對大量據進行高級數學和其他類型的操作。在大數據時代,對幾百萬甚至更大的數據進行頻繁的循環迭代計算,于每一個數據開發者而言都是一場巨大的災難,而 Numpy 利用矢量化運算,可以有效地避免這一點。
3. Numpy 的應用領域
3.1 科學計算
NumPy 通常與 SciPy(Scientific Python)和 Matplotlib(繪圖庫)一起使用, 這種組合廣泛用于替代 MatLab,是一個強大的科學計算環境,有助于我們通過 Python 學習數值計算或者統計分析。Python 作為 MatLab 的替代方案,現在越來越被視為一種更加高效和可擴展的實現語言。
3.1 數據分析
Numpy 專注于數組數據的處理,其和 Pandas 一起使用的時候,這種組合則將應用范疇從數據拓展到各種表格和雜亂的數據格式,是一個非常有用的工作助力。在大數據時代,經過合理的優化編排,Numpy/ Pandas 組合處理幾個 G 的數據綽綽有余,甚至處理能力上探到幾十個 G。
4. 為什么要學習 NumPy ?
Numpy 是基于 C 語言開發,因此繼承了 C 語言運算速度快、消耗資源少等優點,并且 Numpy 被廣泛應用于數據分析、機器學習和深度學習等領域,因此掌握 Numpy 對能力提升和職場晉升的重要性不言而喻。
5. 適用人群
越來越多的用于科學計算與分析的包以 Numpy 作為底層數據結構基礎,并且支持 Python 序列(如 list)作為輸入。例如上面提到的 Scikit-learn、Pandas,他們在進行數據處理之前會默認將輸入轉化為 Numpy 數組。但是為了更有效地使用這些工具,只知道如何使用是不夠的,還需要知道 Numpy 數組是如何工作的。
因此對于每一位從事科學計算、分析、數據處理相關工作的人,都需要學習并了解Numpy。
6. 本課程的學習基礎
Numpy 是 Python 開發生態中重要的一環,因此在學習 Numpy 之前,你需要具備一定的 Python 基礎。