python numpyで指定した条件を満たすものと満たさないもの配列の値を変更する

python numpyで指定した条件を満たすものと満たさないもの配列の値を変更する

pythonで、ライブラリnumpyのwhereを使用して、指定した条件を満たすものと満たさないもの配列の値を変更するサンプルコードを記述してます。pythonのバージョンは3.8.5を使用してます。

環境

  • OS windows10 pro 64bit
  • python 3.8.5

numpyインストール

numpyをインストールされていない方は、pipでインストールしておきます。

pip install numpy

# Successfully installed numpy-1.19.4

where使い方

whereを使用すると、指定した条件を満たすものと満たさないもの配列の値を変更することが可能です。

import numpy as np

# 0~9までの配列を等差1で作成
arr = np.arange(1,10)

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

print(np.where(arr < 5, 0, 1))
# [0 0 0 0 1 1 1 1 1]

print(np.where(arr < 5, arr * 2, arr * 3))
# [ 2  4  6  8 15 18 21 24 27]

変更する処理を記述しなければ、インデックス番号と型を返してくれます。

import numpy as np

print(np.where(arr < 5))
# (array([0, 1, 2, 3], dtype=int64),)