機器學習框架學習筆記- Numpy進階

布爾型索引

布爾型索引其實很好理解,簡單的說有兩個數組,一個數組用於儲存姓名,一個數組用於儲存數據,布爾型索引就是讓這兩個數組能互相交互,經過查詢姓名數組中的人名來獲得對應數據數組裏面的值。python

首先咱們先建立兩個數組數組


注意:名字數組裏面是幾,那麼對應的數據數組裏面的行軸就必須是幾bash

經過 ==(等於)號 將名字數組變成一個布爾型的數組微信


經過 !=(不等)和 ~ 號也能夠反轉條件dom


也能夠組合多個布爾條件:函數

mask = (name == '高天') | (name == '王琴')
data[mask]
#使用&(和)、|(或)之類 的布爾算術運算符
複製代碼


將data中的負值設置爲0學習

data[data<0]=0
data[data==0]=1#設爲其餘值
data[name != '高天']=7#其餘的傳值方法複製代碼


花式索引數

花式索引在概念上很是簡單,它意味着傳遞一個索引數組來一次性得到多個數組元素
測試


花式索引和切片不同,它老是將數據複製到新數組中。 spa

數組轉置和軸對換

轉置是重塑的一種特殊形式,它返回的是源數據的視圖(不會進行任何複製操做)。
.net


transpose函數

arr4.transpose((1,0))#能夠本身嘗試一下複製代碼

swapaxes函數

arr4.awapaxes(1,0)複製代碼

通用函數:快速的元素級數組函數(universal function)

通用函數的全名是universal function(ufunc【縮寫】),numpy提供了大量的ufunc的函數。這些函數在對narray進行運算的速度比使用循環或者列表推導式要快不少,但請注意,在對單個數值進行運算時,python提供的運算要比numpy效率高。

blog.csdn.net/unixtch/art…(詳細請參考)

ufunc一元運算表



二元運算表



利用數組進行數據處理

NumPy數組使你能夠將許多種數據處理任務表述爲簡潔的數組表達式(不然須要編 寫循環)。用數組表達式代替循環的作法,一般被稱爲矢量化。通常來講,矢量化 數組運算要比等價的純Python方式快上一兩個數量級(甚至更多),尤爲是各類數 值計算。




數學和統計方法 


補充:



用於布爾型數組的方法

布爾值會被強制轉換爲1(True)和0(False),所以,sum 常常被用來對布爾型數組中的True值計數。

arr = np.random.randn(100)
(arr>0).sum()複製代碼


any方法和all方法

array.any()#any用於測試數組中是否 存在一個或多個True
array.all()#all則檢查數組中全部值是否都是True複製代碼

用於數組的文件輸入輸出 

NumPy可以讀寫磁盤上的文本數據或二進制數據,np.save和np.load是讀寫磁盤數組數據的兩個主要函數。

np.load('文件.npy')#經過np.load讀取文件
np.savez('文件.npz', a=arr,b=arr)#經過np.savez能夠將多個數組保存到一個未壓縮文件中,
#將數組以關鍵字參數的形 式傳入便可複製代碼

僞隨機數生成 


使用normalvariate產生大量樣本值


補充:


隨機漫步 


是根據前100個隨機漫步值生成的折線圖(仔細看一下代碼小夥伴們應該能看懂就不解釋了)

進階的學習筆記大概就更新到這裏,你們的閱讀。

下一篇我想寫關於Numpy高級應用的學習筆記整理

想要一塊兒交流的小夥伴能夠在文章下面留言或者聯繫個人微信

相關文章
相關標籤/搜索