narray の要素同士の比較について
if文の条件式の中でnumpy のアレイ同士の比較をしたところ
The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
と言われました。
import numpy as np a = np.array([1,2]) b = np.array([1,3]) if a == b: pass
としすると発生しました。 アレイ同士を比較すると
a == b
# array([ True, False], dtype=bool)
と要素間の比較になるため(最初の要素が1同士なのでTrue, 2番目の要素が2と3だからFalse)、真偽値が曖昧だからダメ、と怒られたようです。 これを真偽を返すようにするためには
np.all(a == b) # False np.any(a == b) # True
とすればいいようです。 all()は全件一致時のみTrue, any()は1件でも一致があればTrueを返す、とのこと。