您好,登錄后才能下訂單哦!
今天小編給大家分享一下numpy array如何找出符合條件的數(shù)并賦值的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
在python中利用numpy array進(jìn)行數(shù)據(jù)處理,經(jīng)常需要找出符合某些要求的數(shù)據(jù)位置,有時(shí)候還需要對(duì)這些位置重新賦值。這里總結(jié)了幾種找出符合條件數(shù)據(jù)位置的方法。
這里以一個(gè)8*8的隨機(jī)數(shù)組舉例,來找出大于零的數(shù)。
import numpy as np a = random.randint(-10,10,size=(8,8)) >>> array([[ 5, 5, -7, 7, -8, -7, 0, -8], [ -4, 9, 8, -3, 6, -4, -7, -5], [ 7, 0, 6, 6, -4, -2, -8, 2], [ 6, -5, 8, 4, 7, -8, -4, -4], [ 0, 1, -1, -8, -1, 9, 4, 1], [ 4, -8, -1, -8, -2, -6, -1, 9], [ 7, 7, 9, -9, 4, 8, 3, 1], [ -8, 4, -2, 4, -1, -4, -10, 0]])
location= a[a>0] print(location) >>> array([5, 5, 7, 9, 8, 6, 7, 6, 6, 2, 6, 8, 4, 7, 1, 9, 4, 1, 4, 9, 7, 7, 9, 4, 8, 3, 1, 4, 4]) # 直接輸出了大于0的數(shù)字 #--------------------------------------------------------------# # 我們可以用下面的方法將小于0的數(shù)字都設(shè)置為零,留下大于零的數(shù)字 b = a.copy() b[b<=0]=0 print(b) >>> [[5 5 0 7 0 0 0 0] [0 9 8 0 6 0 0 0] [7 0 6 6 0 0 0 2] [6 0 8 4 7 0 0 0] [0 1 0 0 0 9 4 1] [4 0 0 0 0 0 0 9] [7 7 9 0 4 8 3 1] [0 4 0 4 0 0 0 0]] # 這就將所有大于零的保留了下來 #--------------------------------------------------------------# #還可以此類推,將大于零的位置都設(shè)置成1,可得到大于一的位置 b = a.copy() b[b>0] = 1 b[b<=0] = 0 print(b) >>> [[1 1 0 1 0 0 0 0] [0 1 1 0 1 0 0 0] [1 0 1 1 0 0 0 1] [1 0 1 1 1 0 0 0] [0 1 0 0 0 1 1 1] [1 0 0 0 0 0 0 1] [1 1 1 0 1 1 1 1] [0 1 0 1 0 0 0 0]]
# results = np.where(condition, [x, y]) # 當(dāng)條件為真時(shí),對(duì)應(yīng)位置返回x中的值,條件不成立則返回y中的值 c = np.where(a>0,a,0) #滿足大于0的值保留,不滿足的設(shè)為0 print(c) >>> [[5 5 0 7 0 0 0 0] [0 9 8 0 6 0 0 0] [7 0 6 6 0 0 0 2] [6 0 8 4 7 0 0 0] [0 1 0 0 0 9 4 1] [4 0 0 0 0 0 0 9] [7 7 9 0 4 8 3 1] [0 4 0 4 0 0 0 0]] # 大于零為1小于零為0 c = np.where(a>0,1,0) #滿足大于0的值保留,不滿足的設(shè)為0 print(c) [[1 1 0 1 0 0 0 0] [0 1 1 0 1 0 0 0] [1 0 1 1 0 0 0 1] [1 0 1 1 1 0 0 0] [0 1 0 0 0 1 1 1] [1 0 0 0 0 0 0 1] [1 1 1 0 1 1 1 1] [0 1 0 1 0 0 0 0]]
a > 0 # 得到判斷矩陣 array([[ True, True, False, True, False, False, False, False], [False, True, True, False, True, False, False, False], [ True, False, True, True, False, False, False, True], [ True, False, True, True, True, False, False, False], [False, True, False, False, False, True, True, True], [ True, False, False, False, False, False, False, True], [ True, True, True, False, True, True, True, True], [False, True, False, True, False, False, False, False]], dtype=bool)
以上就是“numpy array如何找出符合條件的數(shù)并賦值”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。