Saya ingin memeriksa apakah variabelnya None atau numpy.array. Saya telah menerapkan check_a
fungsi untuk melakukan ini.
def check_a(a):
if not a:
print "please initialize a"
a = None
check_a(a)
a = np.array([1,2])
check_a(a)
Tapi, kode ini memunculkan ValueError. Apa cara lurus ke depan?
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
, jadi kesalahan sebenarnya terjadi saat not
mencoba memperlakukan array sebagai boolean tunggal dan ternyata tidak bisa. Jika sudah ~a
, itu akan menggunakan NumPy overload dan gagal ketika if
mencoba menggunakan array yang dinegasikan sebagai boolean tunggal.
ValueError
adalah salah satunumpy
pertanyaan paling umum . Artinyanot a
menghasilkan array boolean, dengan (dalam hal ini) 2 nilai. Array boolean ini tidak dapat digunakan sebagaiif
kondisi! Theis None
alternatif yang baik untuk mengetahui, tetapi Anda juga harus memahami kesalahan ini.