Je voudrais vérifier si la variable est None ou numpy.array. J'ai implémenté une check_afonction pour ce faire.
def check_a(a):
if not a:
print "please initialize a"
a = None
check_a(a)
a = np.array([1,2])
check_a(a)
Mais, ce code déclenche ValueError. Quelle est la manière la plus simple?
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()
not, donc l'erreur se produit en fait lorsque vous essayez notde traiter le tableau comme un seul booléen et qu'il découvre que ce n'est pas le cas. Si cela avait été le cas ~a, cela aurait utilisé la surcharge de NumPy et aurait échoué lorsque vous ifessayez d'utiliser le tableau inversé comme un booléen unique.
ValueErrorune des questions les plus courantesnumpy. Cela signifienot aproduit un tableau booléen, avec (dans ce cas) 2 valeurs. Ce tableau booléen ne peut pas être utilisé commeifcondition! L'is Nonealternative est bonne à savoir, mais vous devez également comprendre cette erreur.