Me gustaría comprobar si la variable es None o numpy.array. Implementé una check_afunción para hacer esto.
def check_a(a):
if not a:
print "please initialize a"
a = None
check_a(a)
a = np.array([1,2])
check_a(a)
Pero este código genera ValueError. ¿Cuál es la forma más sencilla?
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, por lo que el error realmente ocurre cuando notintenta tratar la matriz como un solo booleano y descubre que no puede. Si lo hubiera sido ~a, habría usado la sobrecarga de NumPy y habría fallado al ifintentar usar la matriz negada como un único booleano.
ValueErrores una de lasnumpypreguntas más frecuentes . Significa quenot aproduce una matriz booleana, con (en este caso) 2 valores. ¡Esta matriz booleana no se puede utilizar comoifcondición! Lais Nonealternativa es bueno saber, pero se debe entender también este error.