數據分析 | Numpy進階

在職場中不徹底是技術,還有其它方面的東西,你應該知道:
數組

工做不止眼前的苟且,還有詩和遠方
微信


本文知識結構圖:
網絡



回顧:app

Python數據分析之旅: 前戲
編輯器

數據分析 | Numpy初窺函數

索引與切片

切片索引Numpy中選取數據子集或者單個元素的方式有不少,一維數組和Pyhon列表的功能差很少,看下圖:

性能

數組切片與列表最重要的區別在於:數組切片是原始數組的視圖,這就是說數據不會被複制,視圖上的任何修改都有會直接反映到源數據上,也就是說視圖上的任何修改都有會直接改動到數據源,看下圖運行效果:大數據

爲何是這樣的?由於Numpy設計初衷就是處理大數據,因此能夠想象一下,假如Numpy堅持要將數據複製來複制去的話會產生性能與內存等問題.ui

tips:若是想獲得ndarray切片的一份副本而非視圖,就須要顯示地進行復制操做,例以下圖:spa

多維數組

注意:直接給元素賦值,返回的數組都有是視圖,是直接映射到數據源上,若有改變也會影響到數據源

說明:布爾索引與花式索引不經常使用,不做講解!

通用函數運算


運算和數據處理

Numpy數組使你能夠將許多種數據處理任務表述爲簡潔的數據表達式,不然須要編寫循環,用數組表達式代替循環的作法一般稱爲失量化.失量化的運算比普通的Python運算更快.

條件邏輯表述爲數組運算

numpy.where函數是三元表達式x if condition else y的失量化版本,np.where的第二個和第三個參數沒必要是數組,它們都有能夠是標量值,在數據分析中where一般用於根據另外一個數組而產生一個新的數組,以下:

用於布爾型數組的方法

數據惟一化及集合運算

Numpy提供了一些針對一維ndarray的基本集合運算,最經常使用的就是np.unique,它用於找出數組中的惟一值並返回已排序的結果:

數組的文件輸入輸出

Numpy可以讀寫磁盤上的文本數據或者二進制數據.

將數組以二進制格式保存到磁盤

np.save 和 np.load 是讀寫磁盤數組數據的兩個主要函數,默認狀況下,數組是以未壓縮的原始二進制格式保存在擴展名爲.npy的文件中.

np.savez能夠將多個數組保存到一個壓縮文件中,將數組以字參數的形式傳入

看下圖:

線性代數

線性代數是任何數組庫的重要組成,Numpy提供了一個用於矩陣乘法的dot函數

numpy.linalg中一組標準的矩陣分解運算,如求逆和行列式之類的東西. 見下章公式

最後

關於Numpy教程當前就作到這裏,我下一篇會把整個知識點作一個知識網絡圖,以上只是Numpy的部分使用,若是單純演示公式,意義不大。下一章,我把全部的公式補上,方便查閱.

再下一篇是關於Pandas的教程,Numpy深刻部分先放一下,等把Pandas教程作完再補上,由於Pandas是對Numpy的進一步補充,等等你們熟悉了Pandas再回頭看Numpy高級部分更容易理解.

ps:推薦一本數據分析的書,這本書在京東上銷量也名列前茅的

的Python之旅

長按,識別二維碼,關注公衆號



推薦閱讀:

工做不止眼前的苟且,還有詩和遠方

本文分享自微信公衆號 - Python綠色通道(Python_channel)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索