Home » Python » NumPyの使い方 » NumPyで配列のマイナス値をゼロに

NumPyで配列のマイナス値をゼロに

動作検証バージョン:64bit Windows 10 Pro + Python 3.8.3 + NumPy 1.19.1

「numpy 0以下を0にする」
「numpy マイナスの値をゼロ」
といった検索キーワードでアクセスがありました。

Pythonの外部ライブラリ「NumPy(ナンパイ/ナムパイ)」で、配列内に存在するマイナスの値をゼロにするには、どのようなコードを書けばいいのかを探していた方による検索でしょう。

[スポンサードリンク]

NumPyの1次元配列のマイナス値をゼロにするサンプル

いくつかの方法がありますが、元の配列を変更していいのなら、以下のようなコードでしょうか。

import numpy as np

arr = np.array([1, -2, 3, 4, -5])
arr[arr < 0] = 0
print(arr)

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

[1 0 3 4 0]

と出力されます。元の、numpy.ndarray

[1 -2 3 4 -5]

の中の、マイナスの値「-2」「-5」が、「0」になっています。

マイナスの値をゼロにしているのは、

arr[arr < 0] = 0

の行です。
一旦、

arr = np.array([1, -2, 3, 4, -5])

を再度実行してから、

print(arr < 0)

を実行してみてください。

[False True False False True]

と出力されることを確認すると、

arr[arr < 0] = 0

で、配列のマイナスの値がゼロになることがわかるのと共に、NumPyの便利さを感じられるのではないかと思います。

less関数を使う場合

上記の、

arr[arr < 0] = 0

は、NumPyのless関数を使って、

arr[np.less(arr, 0)] = 0

と書くこともできます。

NumPyの2次元配列のマイナス値をゼロにするサンプル

2次元配列の場合も、同じ考え方でOKです。

import numpy as np

arr2 = np.array([
    [1, 4, -7],
    [-2, 5, -8],
    [3, -6, 9]
])
arr2[arr2 < 0] = 0
print(arr2)

上記のコードを実行すると、元のnumpy.ndarray

[[ 1 4 -7]
 [-2 5 -8]
 [ 3 -6 9]]

のマイナス値がゼロになった、

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

が出力されます。

最終更新日時:2020-10-14 13:21

[スポンサードリンク]

Home » Python » NumPyの使い方 » NumPyで配列のマイナス値をゼロに

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

.