在numpy中,clip函數的原型為clip(self, min=None, max=None, out=None),意思是把小於min的數全部置換為min,大於max的數全部置換為max,在[min,max]之間的數則不變。out返回的是一個數組,這個數值必須和原數值維度相同,不然會報錯。
調用clip函數的兩種方式,設存在兩個numpy.ndarray類型數組t,t1
1.numpy.clip(t, 0, 1, t1) # 這種調用方式,t的值不會改變,修改后的數組存儲在t1中
2. t1 = t.clip(1, 2) #這種調用方式比較簡潔明了,把修改后的數組存在t1中。。推薦使用這種方式
測試代碼如下:
import numpy as np # 隨機生成一個3行四列的矩陣,范圍是1--16 np.random.seed(10) t = np.random.randint(1, 16,(3, 4), dtype=int) t1 = np.arange(12).reshape(3, 4) t2 = np.arange(12).reshape(3, 4) print(t) print("*"*30) # 采用第一種方式,在t這個矩陣中,小於5的數改為5,大於12的數改為12,在【5,12】之間的數不變,修改后的數據存儲在t1中 np.clip(t, 5, 12, t1) print(t1) print("*"*30) # 采用第二種方式 t2 = t.clip(5, 12) print(t2)
運行結果如下圖所示: