小編給大家分享一下numpy中ndarray如何按條件篩選數(shù)組及關聯(lián)篩選,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
1.按某些固定值篩選
如下面這段代碼從,ndarray中可以篩選出數(shù)值等于3的子數(shù)組和其在原數(shù)組中的索引位置。
import numpy as np arr = np.array([1, 1, 1, 134, 45, 3, 46, 45, 65, 3, 23424, 234, 12, 12, 3, 546, 1, 2]) print(np.where(arr==3)) print(arr[np.where(arr == 3)]) Output: (array([ 5, 9, 14], dtype=int32),) [3 3 3]
2.按多個固定值篩選
按上述方法篩選多個固定值也是可行的,將不同條件用括號括起來,之間打 | 即可。
import numpy as np arr = np.array([1, 1, 1, 134, 45, 3, 46, 45, 65, 3, 23424, 234, 12, 12, 3, 546, 1, 2]) print(np.where((arr == 3) | (arr == 1))) print(arr[np.where((arr == 3) | (arr == 1))]) Output: (array([ 0, 1, 2, 5, 9, 14, 16], dtype=int32),) [1 1 1 3 3 3 1]
3.按范圍篩選
除了按固定值,我們還可以按一定的范圍進行篩選
import numpy as np arr = np.array([1, 1, 1, 134, 45, 3, 46, 45, 65, 3, 23424, 234, 12, 12, 3, 546, 1, 2]) print(np.where(arr > 3)) print(arr[np.where(arr > 3)]) Output: (array([ 3, 4, 6, 7, 8, 10, 11, 12, 13, 15], dtype=int32),) [ 134 45 46 45 65 23424 234 12 12 546]
如果不需要index,還可以有更快的方法
import numpy as np arr = np.array([1, 1, 1, 134, 45, 3, 46, 45, 65, 3, 23424, 234, 12, 12, 3, 546, 1, 2]) print(arr[arr > 3]) Output: [ 134 45 46 45 65 23424 234 12 12 546]
那為什么還需要用np.where呢?因為索引可以滿足不同數(shù)組間的篩選,比如有a, b 兩個數(shù)組我們需要篩選出所有a == 0的b時即可使用np.where函數(shù)。
import numpy as np a = np.array([0, 0, 1, 1, 0, 1, 1, 0, 1]) b = np.arange(len(a)) print(a) print(b) print(b[np.where(a == 0)]) Output: [0 0 1 1 0 1 1 0 1] [0 1 2 3 4 5 6 7 8] [0 1 4 7]
看完了這篇文章,相信你對“numpy中ndarray如何按條件篩選數(shù)組及關聯(lián)篩選”有了一定的了解,如果想了解更多相關知識,歡迎關注創(chuàng)新互聯(lián)成都網站設計公司行業(yè)資訊頻道,感謝各位的閱讀!
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
本文題目:numpy中ndarray如何按條件篩選數(shù)組及關聯(lián)篩選-創(chuàng)新互聯(lián)
瀏覽路徑:http://sd-ha.com/article18/jjjgp.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供品牌網站設計、定制開發(fā)、移動網站建設、網頁設計公司、品牌網站建設、搜索引擎優(yōu)化
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)