rkj*_*983 88 python numpy is-empty
我想检查变量是否为None或numpy.array.我已经实现check_a了这样做的功能.
def check_a(a):
    if not a:
        print "please initialize a"
a = None
check_a(a)
a = np.array([1,2])
check_a(a)
但是,这段代码引发了ValueError.什么是直接的方式?
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()
Jer*_*ov2 147
去做就对了!:
if a is None:
    ...
else:
    ...
或者如果你想更明确:
>>> a = numpy.arange(5)
>>> a == None
array([False, False, False, False, False])
>>> if a == None:
...     pass
...
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: The truth value of an array with more than one element is ambiguous.
 Use a.any() or a.all()
此外,如果您使用not a,它也将返回a该类型的子类(如果这是您想要的):
# Careful - the type is np.ndarray, not np.array. np.array is a factory function.
if type(a) is np.ndarray:
    ...
else:
    ...