NumPy配列ndarrayを任意の最小値・最大値に収めるclip

NumPy配列ndarrayの要素の値を任意の範囲内に収めるクリッピング処理を行うにはnp.clip()またはndarrayのclip()メソッドを使います。引数に最小値と最大値を指定すると、その範囲外の値は最小値または最大値に置き換えられる。 0.0 ~ 1.0や0 ~ 255などの範囲内に収めたい場合に便利。

numpy.clip — NumPy v1.16 Manual numpy.ndarray.clip — NumPy v1.16 Manual

ここでは以下の内容について説明します。

np.clip()の使い方 ndarrayのclip()メソッドの使い方

np.clip()の使い方

第一引数aに処理する配列ndarray、第二引数a_minに最小値、第三引数a_maxに最大値を指定します。

import numpy as np

a = np.arange(10)
print(a)
# [0 1 2 3 4 5 6 7 8 9]

print(np.clip(a, 2, 7))
# [2 2 2 3 4 5 6 7 7 7]

最小値と最大値のどちらか一方のみを指定したい場合はNoneを使います。省略はできない。

print(np.clip(a, None, 7))
# [0 1 2 3 4 5 6 7 7 7]

print(np.clip(a, 2, None))
# [2 2 2 3 4 5 6 7 8 9]

# print(np.clip(a, 2))
# TypeError: clip() missing 1 required positional argument: 'a_max'

クリップされたndarrayを返し、元のndarrayはそのまま変化なし。

a_clip = np.clip(a, 2, 7)
print(a_clip)
# [2 2 2 3 4 5 6 7 7 7]

print(a)
# [0 1 2 3 4 5 6 7 8 9]

ndarrayのclip()メソッドの使い方

ndarrayのclip()メソッドも同様。 第一引数minに最小値、第二引数maxに最大値を指定します。

print(a.clip(2, 7))
# [2 2 2 3 4 5 6 7 7 7]

print(a.clip(None, 7))
# [0 1 2 3 4 5 6 7 7 7]

print(a.clip(2, None))
# [2 2 2 3 4 5 6 7 8 9]

np.clip()と異なり、第一引数min、第二引数maxにデフォルト値Noneが設定されているため省略が可能。np.clip()と引数名が微妙に違うので、キーワード引数として引数名で指定する場合は注意。

print(a.clip(2))
# [2 2 2 3 4 5 6 7 8 9]

print(a.clip(min=2))
# [2 2 2 3 4 5 6 7 8 9]

print(a.clip(max=7))
# [0 1 2 3 4 5 6 7 7 7]

np.clip()と同様、クリップされたndarrayを返し、元のndarrayはそのまま変化なし。

a_clip = a.clip(2, 7)
print(a_clip)
# [2 2 2 3 4 5 6 7 7 7]

print(a)
# [0 1 2 3 4 5 6 7 8 9]

シェア

関連カテゴリー

Python NumPy

NumPyの配列ndarrayの欠損値np.nanを他の値に置換 Python, NumPyで行列の演算(逆行列、行列式、固有値など) NumPyで任意の行・列を削除するdeleteの使い方 pandas.DataFrame, SeriesとNumPy配列ndarrayを相互に変換 Pythonで正規化・標準化(リスト、NumPy配列、pandas.DataFrame) NumPy配列ndarrayの次元数、形状、サイズ(全要素数)を取得 NumPy配列ndarrayとPython標準のリストを相互に変換 NumPyで条件に応じた処理を行うwhereの使い方 Pythonでメソッドチェーンを改行して書く NumPy配列ndarrayから条件を満たす要素・行・列を抽出、削除 『Pythonデータサイエンスハンドブック』は良書(NumPy, pandasほか) NumPy配列ndarrayに要素・行・列を挿入、追加するinsertの使い方 NumPy配列ndarrayのスライスによる部分配列の選択と代入 NumPyで空の配列ndarrayを生成するemptyとempty_like NumPyで全要素を同じ値で初期化した配列ndarrayを生成

Last Updated: 6/26/2019, 10:34:03 PM