動作検証バージョン: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)
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)
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
[スポンサードリンク]
- Newer:TextStreamを返すメソッド一覧
- Older:pandasで棒グラフの色を指定する