布爾型索引其實很好理解,簡單的說有兩個數組,一個數組用於儲存姓名,一個數組用於儲存數據,布爾型索引就是讓這兩個數組能互相交互,經過查詢姓名數組中的人名來獲得對應數據數組裏面的值。python
首先咱們先建立兩個數組數組
注意:名字數組裏面是幾,那麼對應的數據數組裏面的行軸就必須是幾bash
經過 ==(等於)號 將名字數組變成一個布爾型的數組微信
經過 !=(不等)和 ~ 號也能夠反轉條件dom
也能夠組合多個布爾條件:函數
mask = (name == '高天') | (name == '王琴')
data[mask]
#使用&(和)、|(或)之類 的布爾算術運算符
複製代碼
將data中的負值設置爲0學習
data[data<0]=0
data[data==0]=1#設爲其餘值
data[name != '高天']=7#其餘的傳值方法複製代碼
花式索引在概念上很是簡單,它意味着傳遞一個索引數組來一次性得到多個數組元素
測試
花式索引和切片不同,它老是將數據複製到新數組中。 spa
轉置是重塑的一種特殊形式,它返回的是源數據的視圖(不會進行任何複製操做)。
.net
arr4.transpose((1,0))#能夠本身嘗試一下複製代碼
arr4.awapaxes(1,0)複製代碼
通用函數的全名是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個隨機漫步值生成的折線圖(仔細看一下代碼小夥伴們應該能看懂就不解釋了)
想要一塊兒交流的小夥伴能夠在文章下面留言或者聯繫個人微信