Je voudrais vérifier si la variable est None ou numpy.array. J'ai implémenté une check_a
fonction 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 not
de 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 if
essayez d'utiliser le tableau inversé comme un booléen unique.
ValueError
une des questions les plus courantesnumpy
. Cela signifienot a
produit un tableau booléen, avec (dans ce cas) 2 valeurs. Ce tableau booléen ne peut pas être utilisé commeif
condition! L'is None
alternative est bonne à savoir, mais vous devez également comprendre cette erreur.