首頁  >  文章  >  後端開發  >  Python詳細解析之np.where()的程式碼應用

Python詳細解析之np.where()的程式碼應用

WBOY
WBOY轉載
2022-08-24 09:11:302327瀏覽

【相關推薦:Python3影片教學

np.where共兩種用法:

##第一種

np.where(condition, x, y),即condition為條件,當滿足條件輸出為x,不滿足條件則輸出y.直接上程式碼:

a = np.arange(10)
//array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
print(np.where(a > 5, 1, -1))
//array([-1, -1, -1, -1, -1, -1,  1,  1,  1,  1])

上面的挺好理解的,但是官網的例子不是太好理解,如下所示:

np.where([[True,False], [True,True]],   
			 [[1,2], [3,4]],
             [[9,8], [7,6]])
// 输出 array([[1, 8], [3, 4]])

可以這麼理解,第一行的bool值表示條件,它表示是否取值的意思,首先看[ True,False],即第一的True值表示第一行取數值第一行的[1, 2]中的1,而不取下面的9,False表示不取第一行[1, 2]中的2,而取第二行[9, 8]中的8.下面同理得[3, 4].

為了方便理解再舉一個例子:

a = 10
>>> np.where([[a > 5,a < 5], [a == 10,a == 7]],
             [["chosen","not chosen"], ["chosen","not chosen"]],
             [["not chosen","chosen"], ["not chosen","chosen"]])

//array([[&#39;chosen&#39;, &#39;chosen&#39;], [&#39;chosen&#39;, &#39;chosen&#39;]], dtype=&#39;<U10&#39;)

第一行a> 5True,則取第一行的第一個值,a7ae8e01bb5664444c11fd38979ee52a6=0且data<=2, 滿足就回傳np.ones_like(data)

對應座標的值,不滿足就傳回np.zeros_like(data)對應座標的值。當然x , y可以換成其他的值,只要與條件相同尺寸就可以。

【相關推薦:

Python3影片教學

以上是Python詳細解析之np.where()的程式碼應用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:jb51.net。如有侵權,請聯絡admin@php.cn刪除