Ich möchte überprüfen, ob die Variable None oder numpy.array ist. Ich habe eine check_aFunktion implementiert , um dies zu tun.
def check_a(a):
if not a:
print "please initialize a"
a = None
check_a(a)
a = np.array([1,2])
check_a(a)
Dieser Code löst jedoch ValueError aus. Was ist der direkte Weg?
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, daher tritt der Fehler tatsächlich auf, wenn notversucht wird, das Array als einen einzelnen Booleschen Wert zu behandeln und herausfindet, dass dies nicht möglich ist. Wenn dies ~ader Fall gewesen wäre, hätte dies die Überladung von NumPy verwendet und wäre fehlgeschlagen, wenn ifversucht wurde, das negierte Array als einzelnen Booleschen Wert zu verwenden.
ValueErrorist eine der häufigstennumpyFragen.not aDies bedeutet, dass ein boolesches Array mit (in diesem Fall) 2 Werten erstellt wird. Dieses boolesche Array kann nicht alsifBedingung verwendet werden! Dieis NoneAlternative ist gut zu wissen, aber Sie sollten diesen Fehler auch verstehen.