अगर चर कोई नहीं है या 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()
not, इसलिए त्रुटि वास्तव में तब होती है जब notएक ही बूलियन के रूप में सरणी का इलाज करने की कोशिश करता है और पता चलता है कि यह नहीं हो सकता। यदि ऐसा ~aहोता है, तो यह ifएक बूलियन के रूप में नकारा गया सरणी का उपयोग करने की कोशिश करने पर NumPy के अधिभार का उपयोग करता है और विफल रहा है ।
ValueErrorसबसे आमnumpyप्रश्नों में से एक है। इसका मतलब है किnot aएक बूलियन सरणी का उत्पादन, (इस मामले में) 2 मूल्यों के साथ। इस बूलियन सरणी को एकifशर्त के रूप में इस्तेमाल नहीं किया जा सकता है !is Noneवैकल्पिक पता करने के लिए अच्छा है, लेकिन आप भी इस त्रुटि को समझना चाहिए।