変数がNoneまたはnumpy.arrayかどうかを確認したいと思います。check_a
これを行うための関数を実装しました。
def check_a(a):
if not a:
print "please initialize a"
a = None
check_a(a)
a = np.array([1,2])
check_a(a)
しかし、このコードはValueErrorを発生させます。簡単な方法は何ですか?
ValueError Traceback (most recent call last)
<ipython-input-41-0201c81c185e> in <module>()
6 check_a(a)
7 a = np.array([1,2])
----> 8 check_a(a)
<ipython-input-41-0201c81c185e> in check_a(a)
1 def check_a(a):
----> 2 if not a:
3 print "please initialize a"
4
5 a = None
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
@hpaulj:不正解です-オーバーロードすることはできないため、配列を単一のブール値として処理しようとすると
—
user2357112はモニカ
not
エラーが実際に発生し、not
それができないことがわかります。だった場合~a
、NumPyのオーバーロードif
を使用して、否定された配列を単一のブール値として使用しようとすると失敗します。
ValueError
は最も一般的なnumpy
質問の1つです。これはnot a
、(この場合)2つの値を持つブール配列を生成することを意味します。このブール配列はif
条件として使用できません!is None
代替は知って良いですが、あなたも、このエラーを理解する必要があります。