Home » Python » NumPyの使い方 » NumPyのwhere関数を使って配列のマイナス値をゼロに

NumPyのwhere関数を使って配列のマイナス値をゼロに

動作検証バージョン: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

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

arr2d_org = np.array([
    [1, 4, -7],
    [-2, 5, -8],
    [3, -6, 9]
])

arr2d_new = np.where(arr2d_org < 0, 0, arr2d_org)
print(arr2d_new)

上記のコードを実行すると、

[[1 4 0]
 [0 5 0]
 [3 0 9]]

が出力されます。

最終更新日時:2023-05-19 17:24

[スポンサードリンク]

Home » Python » NumPyの使い方 » NumPyのwhere関数を使って配列のマイナス値をゼロに

Copyright © インストラクターのネタ帳 All Rights Reserved.

.