numpy.clip#

numpy.clip(a, a_min=<no value>, a_max=<no value>, out=None, *, min=<no value>, max=<no value>, **kwargs)[原始碼]#

限制(clip)陣列中的數值。

給定一個區間,區間外的數值會被限制在區間邊緣。例如,如果指定區間 [0, 1],小於 0 的值會變成 0,大於 1 的值會變成 1。

等效於但比 np.minimum(a_max, np.maximum(a, a_min)) 更快。

不執行檢查以確保 a_min < a_max

參數:
aarray_like

包含要限制數值的陣列。

a_min, a_maxarray_like 或 None

最小值和最大值。如果為 None,則不會在對應的邊緣執行限制。如果 a_mina_max 均為 None,則返回陣列的元素保持不變。兩者都會針對 a 進行廣播。

outndarray,可選

結果將放置在此陣列中。它可能是用於原地限制的輸入陣列。out 必須具有正確的形狀以容納輸出。其類型會被保留。

min, maxarray_like 或 None

Array API 相容的 a_mina_max 參數替代方案。可以同時傳遞 a_mina_maxminmax。預設值:None

2.1.0 版本新增。

**kwargs

對於其他僅限關鍵字的參數,請參閱 ufunc 文件

返回:
clipped_arrayndarray

一個包含 a 元素的陣列,但其中 < a_min 的值會被替換為 a_min,而 > a_max 的值會被替換為 a_max

另請參閱

輸出類型決定

註解

a_min 大於 a_max 時,clip 會返回一個陣列,其中所有值都等於 a_max,如第二個範例所示。

範例

>>> import numpy as np
>>> a = np.arange(10)
>>> a
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> np.clip(a, 1, 8)
array([1, 1, 2, 3, 4, 5, 6, 7, 8, 8])
>>> np.clip(a, 8, 1)
array([1, 1, 1, 1, 1, 1, 1, 1, 1, 1])
>>> np.clip(a, 3, 6, out=a)
array([3, 3, 3, 3, 4, 5, 6, 6, 6, 6])
>>> a
array([3, 3, 3, 3, 4, 5, 6, 6, 6, 6])
>>> a = np.arange(10)
>>> a
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> np.clip(a, [3, 4, 1, 1, 1, 4, 4, 4, 4, 4], 8)
array([3, 4, 2, 3, 4, 5, 6, 7, 8, 8])