अगर चर कोई नहीं है या 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
वैकल्पिक पता करने के लिए अच्छा है, लेकिन आप भी इस त्रुटि को समझना चाहिए।