numpy.ma.clip#

ma.clip = <numpy.ma.core._convert2ma object>#

將陣列中的值裁剪(限制)。

給定一個區間,區間外的值會被裁剪到區間邊緣。例如,如果指定區間 [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_arrayMaskedArray

一個包含 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])