ValueError al verificar si la variable es Ninguna o numpy.array

Me gustaría comprobar si la variable es Ninguna o numpy.array. He implementado la función check_a 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 el camino directo?

 ValueError Traceback (most recent call last)  in () 6 check_a(a) 7 a = np.array([1,2]) ----> 8 check_a(a)  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() 

¡Simplemente hazlo!:

 if a is None: ... else: ... 

O si quieres ser más explícito:

 # be careful not to check for np.array but for np.ndarray! if type(a) is np.ndarray: ... else: ... 

Además, si usa isinstance , también devolverá True para las subclases de ese tipo (si eso es lo que quiere):

 # be careful not to check for np.array but for np.ndarray! if isinstance(a, np.ndarray): ... else: ...