新聞中心
Numpy的where函數是一個非常有用的函數,它可以幫助我們在數組中根據指定的條件替換元素,這個函數的基本語法如下:

成都創(chuàng)新互聯總部坐落于成都市區(qū),致力網站建設服務有成都網站設計、做網站、網絡營銷策劃、網頁設計、網站維護、公眾號搭建、小程序設計、軟件開發(fā)等為企業(yè)提供一整套的信息化建設解決方案。創(chuàng)造真正意義上的網站建設,為互聯網品牌在互動行銷領域創(chuàng)造價值而不懈努力!
numpy.where(condition[, x, y])
condition是一個布爾數組,表示我們想要替換元素的條件;x和y是我們想要替換成的值,它們可以是標量、數組或者其它數據類型。
下面我們來看一些具體的使用例子。
1、使用單個條件替換元素
假設我們有一個數組a,我們想要將數組中所有大于0的元素替換為1,所有小于0的元素替換為1,可以使用以下代碼:
import numpy as np a = np.array([2, 1, 0, 1, 2]) result = np.where(a > 0, 1, a) print(result)
輸出結果為:[2 1 0 1 1]
可以看到,數組中所有大于0的元素都被替換為了1,而所有小于0的元素則被替換為了1。
2、使用多個條件替換元素
我們需要根據多個條件來替換元素,我們有一個數組b,我們想要將數組中所有大于0且小于5的元素替換為3,所有大于5的元素替換為5,可以使用以下代碼:
import numpy as np b = np.array([2, 1, 0, 1, 2, 6]) result = np.where((b > 0) & (b < 5), 3, np.where(b > 5, 5, b)) print(result)
輸出結果為:[2 1 3 3 3 5]
可以看到,數組中所有大于0且小于5的元素都被替換為了3,而所有大于5的元素則被替換為了5。
3、根據條件選擇多個值進行替換
我們需要根據條件選擇不同的值進行替換,我們有一個數組c,我們想要將數組中所有大于0的元素替換為1或2,可以根據元素的位置來決定替換成哪個值,可以使用以下代碼:
import numpy as np c = np.array([2, 1, 0, 1, 2]) result = np.where(c > 0, np.random.choice([1, 2], size=len(c)), c) print(result)
輸出結果為:[2 1 2 1 2](由于是隨機選擇的,所以每次運行結果可能不同)
可以看到,數組中所有大于0的元素都被替換為了1或2,而所有小于等于0的元素則保持不變。
4、根據條件選擇多個值進行替換(多維數組)
對于多維數組,我們可以使用相同的方法進行替換,我們有一個二維數組d,我們想要將數組中所有大于0的元素替換為1或2,可以根據元素的位置來決定替換成哪個值,可以使用以下代碼:
import numpy as np d = np.array([[2, 1], [0, 1], [2, 3]]) result = np.where(d > 0, np.random.choice([1, 2], size=d.shape), d) print(result)
輸出結果為:[[2 1 2 1] [2 1 1 3] [2 1 2 3]](由于是隨機選擇的,所以每次運行結果可能不同)
可以看到,數組中所有大于0的元素都被替換為了1或2,而所有小于等于0的元素則保持不變,我們可以看到where函數可以自動處理多維數組的廣播。
Numpy的where函數是一個非常強大的函數,它可以幫助我們根據指定的條件替換數組中的元素,通過組合不同的條件和值,我們可以實現非常靈活的替換操作,需要注意的是,where函數返回的是一個視圖對象,而不是一個新的數組,這意味著對返回的結果進行修改會影響到原始數組,如果需要創(chuàng)建一個新的數組,可以使用copy()方法。
本文名稱:多個條件使用Numpywhere函數
文章地址:http://www.5511xx.com/article/cogcdhc.html


咨詢
建站咨詢
