ValueError when checking if variable is None or numpy.array
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()
Just do it!:
if a is None: ... else: ...
Or if you want to be more explicit:
# be careful not to check for np.array but for np.ndarray! if type(a) is np.ndarray: ... else: ...
Also if you use
isinstance, it will also return
True for subclasses of that type (if that is what you want):
# be careful not to check for np.array but for np.ndarray! if isinstance(a, np.ndarray): ... else: ...
★ Back to homepage or read more recommendations: