where関数【numpy】
説明:配列の構成要素のうち、条件に一致するものを置き換えるために用いられる関数。
書式:
y = numpy.where( 条件、x、a)
引数と戻り値:
条件:元データと同じサイズの論理値から構成される配列
x:元データとなる配列
a:置き換える値
y:結果の値
解説:
結果の値は以下の要素から構成される配列となる。元データと同じ形状である。
条件が真に対応する要素は元データ
条件が偽に対応する要素は置き換える値
code:where_func1.py
import numpy as np
x = np.array(0, 1, 2)
c = np.array(True, False, True)
y = np.where(c, x, -99)
print(y)
code:結果.txt
0 -99 2
元データxのうち、Faluseに対応する要素が-99に置き換えられている。
条件の配列には論理型以外のものも利用できる。数値型のデータの場合、0がFalseとして扱われるようだ。
code:where_func2.py
import numpy as np
x = np.array(0, 1, 2)
c1 = np.array(1, 0, 1)
y1 = np.where(c1, x, -99)
print(y1)
c2 = np.array(42.149, 0.0, -123.45)
y2 = np.where(c2, x, -99)
print(y2)
引数が1つの場合
条件のみを引数として与えると、Trueに対応する要素のインデックスから構成された配列が生成される。
code:where_func3.py
import numpy as np