NumPy配列の要素を任意の範囲に収める: np.clip()
NumPy配列要素の値を任意の範囲内に収めることをクリップといい,np.clip()メソッドが有用である.
[下限値, 上限値]を与えると下限値以下の値は下限値,上限値以上の値は上限値に固定される.
例えば,[0, 1]の場合は0以下の値は全て0に,1以上の値は全て1に設定される.
np.clip(a, a_min, a_max, out=None)
引数:
a: 元の配列
a_min: 下限値,Noneで下限値なし.
a_max: 上限値,Noneで上限値なし.
out: 出力先の配列(オプション)
戻り値:
クリップされた配列を返す.
元の配列は元のままで変化しない.
サンプルコード
import numpy as np x = np.arange(1, 10) x # array([1, 2, 3, 4, 5, 6, 7, 8, 9]) np.clip(x, 2, 8) # array([2, 2, 3, 4, 5, 6, 7, 8, 8]) x # array([1, 2, 3, 4, 5, 6, 7, 8, 9]) np.clip(x, 2, 8, out=x) # array([2, 2, 3, 4, 5, 6, 7, 8, 8]) x # array([2, 2, 3, 4, 5, 6, 7, 8, 8]) y = np.array([[1, 2, 3, 4], [5, 6, 7, 8]]) np.clip(y, 2, 7) # array([[2, 2, 3, 4], [5, 6, 7, 7]])