import numpy as np # 導入 NumPy, 開始學習
感謝 NumPy, 本系列將使用圖解以及腦圖的方法來記錄我的《圖解 NumPy 學習筆記》。
NumPy 是 Numerical Python 的簡稱,它是目前 Python 數值計算 中最爲重要的基礎包。大多數計算包都提供了基於 NumPy 的科學計算函數功能,將 NumPy 的數組對象作爲數據交換的通用語。——《利用 Python 進行數據分析》
初識 NumPy
NumPy 的官方文檔非常詳實,但由於數量過多,不容易讓初學者有一個好的 big-picture。
本系列計劃將 NumPy 較爲全面的展示給初學者,加以鄙人的學習使用技巧與感悟,文章必有疏漏或錯誤,還望各位不吝賜教。
Why: 爲什麼要使用 NumPy ?
快,NumPy 既結合了 Python 開發效率高的優點,又能彌補了 Python 運行效率較低的缺點。
在學會使用 numba.njit+NumPy (數十倍的速度)和 cuda GPU (上百倍的速度)加速後,真的是“人生苦短,我用 Python "了。當然這都是後話了,相關內容,以後補充。
NumPy 的方法比 Python 方法要 快 10 到 1000 倍,並且使用 內存也更少,可以大大方便我們在數據處理方面的研究與開發。
快與慢,還要看個人如何使用,但是 內存映射 這是非常棒的。
如果面臨數據過多,又不想存入數據庫中,且數據的形式是數組或者矩陣,
可以使用 NumPy 的 np.save() 和 np.load(, mmap_mode = 'r'),可以內存映射矩陣保留在磁盤上,無須全部讀入,以後會詳細說明。
單從 運行效率 而言,在 NumPy 上只要能被表示爲針對 數組或矩陣運算 的算法,其運行效率幾乎都可以與編譯過的等效 C 語言代碼媲美。
What: NumPy 是什麼?
NumPy 是 Python 數值計算 的基石。
它提供多種數據結構、算法以及大部分涉及 Python 數值計算所需的接口 。
簡單來說,NumPy 是使用 Python 進行數據分析的一個核心工具。
How: 如何使用 NumPy ?
使用NumPy的不二法門就是 面向數組編程。(面向數組編程,超級好文,看完拍案叫絕!!!)
面向過程編程 好理解,
面向對象編程 也好理解,
那 面向數組編程 是什麼?
面向數組編程 就是以 向量化 代替 使用繁雜的 循環,
用人話說就是用 數組或矩陣運算 代替 遍歷的 for 循環,
具體怎麼做呢?
看見一個 for 循環,
就想一個問題 “ 我能否使用矩陣運算來代替這個 for 循環?”
人生苦短,我用 Python
人生苦短,我用 NumPy
Last updated: 2019/9/20