2022年5月6日金曜日

【Numpy】whereによる条件に合う要素に対する演算

 Pythonの数値計算ライブラリNumPyの配列型データ構造であるndarrayの要素に対して、条件に合うもののみ演算を行う場合whereを用いる。

Numpyを使う際にはimportが必要。しばしば次のようにnpと略されてインポートされる。

import numpy as np



1. whereの書式

 whereの書式は以下。conditionに条件式を書き、条件が適合する要素に対して処理xが実行され、それ以外に対しては処理yが実行される。condition, x, yいずれも必須の引数。

numpy.where(condition, [x, y, ]/)


2. whereの例

 一次元ndarrayの要素が5以上の場合、値を10倍する例。

import numpy as np

a = np.arange(10)
b = np.where(a < 5, a, 10*a)

print(b)

実行結果

[ 0  1  2  3  4 50 60 70 80 90]


 二次元ndarrayの場合。conditionTrueの場合、xFalseの場合、yの値が用いられる。

import numpy as np

a = np.array([[True, False], [True, True]])
print(np.where(a, 
               [[1, 2], [3, 4]],
               [[9, 8], [7, 6]]))

実行結果

[[1 8]
 [3 4]]


3. リファレンス

NumPy > numpy.where

使用バージョン:Python 3.10.4/numpy 1.22.3

0 件のコメント:

コメントを投稿