numpy.where()的用法


 1. np.where(condition, x, y)

  滿足條件(condition),輸出x,不滿足輸出y。

arr = np.arange(10) 
out = np.where(arr%2 == 1,-1,arr) 
print(out) 4 
>>> 
[ 0 -1 2 -1 4 -1 6 -1 8 -1]

 

 2. np.where(condition)

  只有條件 (condition),沒有x和y,則輸出滿足條件 (即非0) 元素的坐標。這里的坐標以tuple的形式給出,通常原數組有多少維,輸出的tuple中就包含幾個數組,分別對應符合條件元素的各維坐標。

a = np.array([1,3,5,7,9])
print(np.where(a>5))
print(a[np.where(a>5)])
>>>
(array([3, 4], dtype=int64),)
[7 9]

 

 3.給where()函數傳遞一個條件數組和兩個值或數組,對於條件數組中等價於True的位置,從第一個值或數組中取值進行替換,否則從第二個值或數組中取值進行替換。 

x = np.array([1,2,3,4,5,6])
y = np.array([[1,0,3],[4,5,0]])
print(np.where(x%2 == 1,x,-x))
print(np.where(y%2 == 1,1,-1))
print(np.where(y,[30,40,50],[60,70,80]))  
#y數組的第一行,1等價於true,取第二組參數30,0等價於false,取第三組參數60,3等價於true,取第二組參數50
>>> [ 1 -2 3 -4 5 -6] [[ 1 -1 1] [-1 1 -1]] [[30 70 50] [30 40 80]]

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM