NumPyで条件に応じた処理を行うnp.whereの使い方
NumPyで条件に応じた処理を行うnp.whereの使い方
np.whereを使うとmap()のようなことができるらしい。便利そうだ
np.where(a,x,y)
aが条件式、Trueならx,Falseならyの値に書き換える
np.whereを使うとmap()のようなことができるらしい。便利そうだ
np.where(a,x,y)
aが条件式、Trueならx,Falseならyの値に書き換える
import numpy as np a = np.arange(9).reshape((3, 3)) print(a) # [[0 1 2] # [3 4 5] # [6 7 8]] print(np.where(a < 4, -1, 100)) # [[ -1 -1 -1] # [ -1 100 100] # [100 100 100]] print(np.where((a > 2) & (a < 6) | (a == 7), -1, 100)) # [[100 100 100] # [ -1 -1 -1] # [100 -1 100]] #条件を満たす要素を置換 print(np.where(a < 4, -1, a)) # [[-1 -1 -1] # [-1 4 5] # [ 6 7 8]] print(np.where(a < 4, a, 100)) # [[ 0 1 2] # [ 3 100 100] # [100 100 100]] #条件を満たす要素を処理 print(np.where(a < 4, a * 10, a)) # [[ 0 10 20] # [30 4 5] # [ 6 7 8]] #条件を満たす要素のインデックス(位置)を取得 print(np.where(a < 4)) # (array([0, 0, 0, 1]), array([0, 1, 2, 0])) print(type(np.where(a < 4))) #print(list(zip(*np.where(a < 4)))) # [(0, 0), (0, 1), (0, 2), (1, 0)]
コメント
コメントを投稿