python numpyの配列を条件を指定して値を抽出する

python numpyの配列を条件を指定して値を抽出する

pythonで、配列を条件を指定して値を抽出するサンプルコードを記述してます。pythonのバージョンは3.8.5を使用してます。

環境

  • OS windows10 pro 64bit
  • python 3.8.5

numpyインストール

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

pip install numpy

# Successfully installed numpy-1.19.4

条件で抽出

条件を付けての抽出は、以下の方法で可能です。

配列[配列 >= 5]

以下は、条件を指定してのサンプルコードとなります。

import numpy as np

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

# 5以上
print(arr[arr >= 5])
# [5 6]

# 2で割り切れたものだけ
print(arr[arr % 2 == 0])
# [2 4 6]

多次元配列でも結果は、同じとなります。

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

# 5以上
print(arr[arr >= 5])
# [5 6]

print(arr[arr % 2 == 0])
# [2 4 6]

条件を複数指定する場合は、「&」や「|」を使用します。

import numpy as np

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

# 5以上 かつ 偶数のみ
print(arr[(arr >= 5) & (arr  % 2 == 0)])
# [6]

# 5以上 または 偶数のみ
print(arr[(arr >= 5) | (arr  % 2 == 0)])
# [2 4 5 6]

指定した条件にあった値のみを、変更することも可能です。

import numpy as np

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

arr[arr % 2 == 0] = 0

print(arr)
# [1 0 3 0 5 0]