" />

欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

numpy array找出符合條件的數(shù)并賦值的示例代碼

 更新時(shí)間:2022年05月31日 14:57:47   作者:hitrjj  
本文主要介紹了numpy array找出符合條件的數(shù)并賦值的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

在python中利用numpy array進(jìn)行數(shù)據(jù)處理,經(jīng)常需要找出符合某些要求的數(shù)據(jù)位置,有時(shí)候還需要對(duì)這些位置重新賦值。這里總結(jié)了幾種找出符合條件數(shù)據(jù)位置的方法。

這里以一個(gè)8*8的隨機(jī)數(shù)組舉例,來(lái)找出大于零的數(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]])

1.直接利用條件索引

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]]
?# 這就將所有大于零的保留了下來(lái)

#--------------------------------------------------------------#

#還可以此類推,將大于零的位置都設(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]]

2.利用numpy.where()

# 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]]

3.直接邏輯運(yùn)算

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)

到此這篇關(guān)于numpy array找出符合條件的數(shù)并賦值的示例代碼的文章就介紹到這了,更多相關(guān)numpy array賦值內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論