在職場中不徹底是技術,還有其它方面的東西,你應該知道:
數組
本文知識結構圖:
網絡
回顧:app
索引與切片
切片索引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源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。