您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關numpy中數組過濾的示例分析的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
當使用布爾數組b作為下標存取數組x中的元素時,將收集數組x中所有在數組b中對應下標為True的元素。使用布爾數組作為下標獲得的數組不和原始數組共享數據空間,注意這種方式只對應于布爾數組(array),不能使用布爾列表(list)。
>>> x = np.arange(5,0,-1) >>> x array([5, 4, 3, 2, 1]) >>> x[np.array([True, False, True, False, False])] >>> # 下標為True的取出來,布爾數組中下標為0,2的元素為True,因此獲取x中下標為0,2的元素 array([5, 3]) >>> x[[True, False, True, False, False]]#Error,這不是我們想要的結果 >>> # 如果是布爾列表,則把True當作1, False當作0,按照整數序列方式獲取x中的元素 array([4, 5, 4, 5, 5]) >>> x[np.array([True, False, True, True])] >>> # 布爾數組的長度不夠時,不夠的部分都當作False array([5, 3, 2]) >>> x[np.array([True, False, True, True])] = -1, -2, -3#只修改下標為True的元素 >>> # 布爾數組下標也可以用來修改元素 >>> x array([-1, 4, -2, -3, 1])
注意:布爾數組一般不是手工產生的,通常我們使用一條布爾表達式來得到,如:
>>> x = np.random.rand(10) # 產生一個長度為10,元素值為0-1的隨機數的數組 >>> x array([ 0.72223939, 0.921226 , 0.7770805 , 0.2055047 , 0.17567449, 0.95799412, 0.12015178, 0.7627083 , 0.43260184, 0.91379859]) >>> x>0.5 >>> # 數組x中的每個元素和0.5進行大小比較,得到一個布爾數組,True表示x中對應的值大于0.5 array([ True, True, True, False, False, True, False, True, False, True], dtype=bool) >>> x[x>0.5]# x>0.5是一個布爾數組 >>> # 使用x>0.5返回的布爾數組收集x中的元素,因此得到的結果是x中所有大于0.5的元素的數組 array([ 0.72223939, 0.921226 , 0.7770805 , 0.95799412, 0.7627083 , 0.91379859])
感謝各位的閱讀!關于“numpy中數組過濾的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。