I'd like to check if variable is None or numpy.array. I've implemented check_a function to do this.
def check_a(a):
if not a:
print "please initialize a"
a = None
check_a(a)
a = np.array([1,2])
check_a(a)
But, this code raises ValueError. What is the straight forward way?
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()
ValueErroris one of the most commonnumpyquestions. It meansnot aproduces a boolean array, with (in this case) 2 values. This boolean array cannot be used as anifcondition! Theis Nonealternative is good to know, but you should also understand this error. - hpauljnot, so the error actually happens whennottries to treat the array as a single boolean and finds out it can't. If it had been~a, that would have used NumPy's overload and failed wheniftries to use the negated array as a single boolean. - user2357112 supports Monica