動作検証バージョン:64bit Windows 10 Pro + Python 3.8.3 + NumPy 1.19.1
NumPy配列内に存在するマイナスの値をゼロにするコードをご紹介してきました。
numpy.where関数を使っても同様の処理が可能です。
[スポンサードリンク]
where関数で1次元配列のマイナス値をゼロにするサンプル
以下のコードを実行すると、元の配列
[1 -2 3 4 -5]
のマイナス値がゼロになった
[1 0 3 4 0]
が出力されます。
import numpy as np
print(arr_new)
arr_org = np.array([1, -2, 3, 4, -5])
arr_new = np.where(arr_org < 0, 0, arr_org)print(arr_new)
numpy.where関数は、第1引数に条件を指定し、
arr_new = np.where(arr_org < 0, 0, arr_org)
Trueのときに第2引数の値、
arr_new = np.where(arr_org < 0, 0, arr_org)
Falseのときに第3引数の値の
arr_new = np.where(arr_org < 0, 0, arr_org)
ndarrayを返してくれます。
ExcelのIF関数と似たイメージで読むことができます。
上記のコードでは、条件「arr_org < 0」がTrueの場合、すなわちマイナスの値のときに第2引数に指定されている「0」に、マイナスの値ではないときに第3引数にarr_orgが指定されているため元の値のままとなります。
where関数で2次元配列のマイナス値をゼロにするサンプル
2次元配列の場合も同様です。
import numpy as np
print(arr2d_new)
arr2d_org = np.array([
[1, 4, -7],
[-2, 5, -8],
[3, -6, 9]
])
print(arr2d_new)
上記のコードを実行すると、
[[1 4 0]
[0 5 0]
[3 0 9]]
が出力されます。
最終更新日時:2023-05-19 17:24
[スポンサードリンク]