Gostaria de verificar se a variável é None ou numpy.array. Eu implementei uma check_afunção para fazer isso.
def check_a(a):
if not a:
print "please initialize a"
a = None
check_a(a)
a = np.array([1,2])
check_a(a)
Mas, esse código gera ValueError. Qual é o caminho direto?
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, então o erro realmente ocorre quando nottenta tratar o array como um único booleano e descobre que não pode. Se tivesse sido ~a, isso teria usado a sobrecarga do NumPy e falhado ao iftentar usar o array negado como um único booleano.
ValueErroré uma dasnumpyperguntas mais comuns . Isso significa quenot aproduz um array booleano, com (neste caso) 2 valores. Este array booleano não pode ser usado comoifcondição! Ais Nonealternativa é bom saber, mas você também deve compreender este erro.