第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

麻木的錯誤?(python3)

麻木的錯誤?(python3)

楊__羊羊 2021-05-30 20:50:50
import numpy as npmainList = []numpyArray0 = np.array([1,2,3])numpyArray1 = np.array([4,5,6])mainList.append(numpyArray0)mainList.append(numpyArray1)print("numpyArray0 in mainList:")try:  print(numpyArray0 in mainList)except ValueError:  print("ValueError")print("numpyArray1 in mainList:")try:  print(numpyArray1 in mainList)except ValueError:  print("ValueError")print("mainList in numpyArray0:")try:  print(mainList in numpyArray0)except ValueError:  print("ValueError")print("mainList in numpyArray1:")try:  print(mainList in numpyArray1)except ValueError:  print("ValueError")print(numpyArray1 in mainList)所以我上面的代碼基本上是在一個普通的python列表(mainList)內(nèi)創(chuàng)建2個numpy數(shù)組,然后檢查這些2個數(shù)組是否在列表內(nèi)。代碼應(yīng)該輸出:numpyArray0 in mainList:TruenumpyArray1 in mainList:**True**mainList in numpyArray0:TruemainList in numpyArray1:True**True**但不是輸出上述內(nèi)容,而是輸出以下內(nèi)容:numpyArray0 in mainList:TruenumpyArray1 in mainList:ValueErrormainList in numpyArray0:TruemainList in numpyArray1:TrueTraceback (most recent call last):  File "/home/user/Documents/pythonCode/temp.py", line 31, in <module>    print(numpyArray1 in mainList)ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()我做錯了什么嗎?請注意,我在運行代碼之前嘗試更新 python、numpy 和我的操作系統(tǒng)(debian)。
查看完整描述

3 回答

?
qq_遁去的一_1

TA貢獻1725條經(jīng)驗 獲得超8個贊

看起來這是一個眾所周知的特性,==Numpy 數(shù)組的運算符重載方式有關(guān)。


查看完整回答
反對 回復(fù) 2021-06-01
?
繁星淼淼

TA貢獻1775條經(jīng)驗 獲得超11個贊

numpyArray0 in mainList調(diào)用list.__contains__。列表的__contains__方法調(diào)用列表的PyObject_RichCompareBool每個元素來檢查元素是否相等。碰巧的是,首先PyObject_RichCompareBool檢查身份相等性,然后進行全面比較。

numpyArray0 is mainList[0]返回True,因此永遠不會進行完全比較。如果完成了完全比較,numpy則會引發(fā),ValueError因為numpy數(shù)組不能被解釋為布爾值。

numpyArray1 in mainList也顯示了這一點(因為numpyArray1vs 的身份比較失敗了mainList[0]。


查看完整回答
反對 回復(fù) 2021-06-01
?
寶慕林4294392

TA貢獻2021條經(jīng)驗 獲得超8個贊

這里的要點:


>>> numpyArray1 in mainList

....    

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

這將工作:


>>> any([list(numpyArray1) == list(litem)  for litem in mainList])

True


查看完整回答
反對 回復(fù) 2021-06-01
  • 3 回答
  • 0 關(guān)注
  • 580 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號