[英]How can I fix value error on for-loop in python array?
對於家庭作業,我們被要求生成下面的特定數組,並使用 for 循環查找數組中偶數的計數。 運行我的 for 循環后,我遇到了值錯誤。
Q2 = np.random.randint(0, 1000, size = (10, 10))
print("The list of numbers in Q2 array = ", Q2)
even_count = 0
odd_count = 0
for i in range(len(Q2)):
if(Q2[i] % 2 == 0):
even_count = even_count + 1
else:
odd_count = odd_count + 1
print("The count of the even numbers in Q2 array = ", even_count)
當我運行 for 循環時收到以下消息: ValueError:具有多個元素的數組的真值不明確。 使用 a.any() 或 a.all()
我已經搜索了這個問題的答案,並找到了值錯誤和布爾值的各種解釋,但沒有一個對我的代碼類型有幫助。 或者沒有詳細說明 Python 的新手理解(我!)任何幫助將不勝感激!
Q2 是數組的數組,因此您需要另一個for
循環。
import numpy as np
Q2 = np.random.randint(0, 1000, size = (10, 10))
print("The list of numbers in Q2 array = ", Q2)
even_count = 0
odd_count = 0
for i in Q2:
for j in i:
if (j % 2 == 0):
even_count = even_count + 1
else:
odd_count = odd_count + 1
print("The count of the even numbers in Q2 array = ", even_count)
您正在生成一個二維數組 (10 x 10)。 所以Q2[i]
仍然是一個(一維)數組,而不是您所期望的單個 integer。 因此會出現錯誤,因為在您的子數組中您可能同時擁有偶數和奇數 - 換句話說,正如錯誤消息所述,您檢查的真值不明確。
男二次循環,或者干脆創建一個一維數組
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.