簡體   English   中英

錯誤:具有多個元素的數組的真值不明確

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM