[英]Value error: The truth value of an array with more than one element is ambiguous
[英]Error: The truth value of an array with more than one element is ambiguous
有兩個數組: a=np.array([1,2,3,4,5])
和b=np.array([1,2,3,4,5,6,7,8,9])
創建一個包含其他兩個數組的新數組: c=np.array([[a],[b]])
。
我們要在c
使用最小值(例如值3)對兩個數組中的每個數組進行閾值處理,最后使它們具有: d=[[4,5],[4,5,6,7,8,9]]
。
按照這種方式:
d=[]
p=-1
for i in range(0,1):
p=p+1
d[p]=c[i][(c[i]>3)]]
給出標題錯誤中提到的內容。 很高興了解原因。
問題是你已經添加了一層額外的[]
中c
,所以不是訪問只是c[i]
你應該進入c[i][0]
>>> for x in c:
... print x
...
[array([1, 2, 3, 4, 5])]
[array([1, 2, 3, 4, 5, 6, 7, 8, 9])]
用c[i][0]
替換c[i]
將修復您的代碼,並且您也無法將任何內容分配給空列表,因此將d[p]
替換為追加調用:
>>> d = []
>>> for i in range(len(c)):
d.append(c[i][0][c[i][0]>3])
...
>>> d
[array([4, 5]), array([4, 5, 6, 7, 8, 9])]
#or simply:
>>> [x[0][x[0]>3] for x in c]
[array([4, 5]), array([4, 5, 6, 7, 8, 9])]
更改c
的初始化:
>>> c = np.array([a, b])
>>> [x[x>3] for x in c]
[array([4, 5]), array([4, 5, 6, 7, 8, 9])]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.