[英]Value error: The truth value of an array with more than one element is ambiguous
[英]Truth value of an array with more than one element is ambiguous
給我這個問題,我不確定為什么我的代碼出錯。
問題4.假設在1930年有30,000名上海灘的人,並且上海灘的人逐年增加了15%。 創建一個名為beachgoers的數組,其中包含1930年至2017年之間每年的海灘游民數量。如果有一個海灘游民同樣有可能受到鯊魚襲擊,那么最危險的鯊魚襲擊年有多危險? 將被鯊魚襲擊的幾率分配給各種危險。 提示:要計算出行者,您可能會發現函數np.arange很有幫助。
yearly_growth_rate = 30000 * 1.15 ** np.arange(1, 88) - 30000
final_number = 30000 * (1.15 ** 88)
beachgoers = np.arange(30000, final_number, yearly_growth_rate)
beachgoers
#danger = ...
這是我得到的錯誤
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-57-df37b4a34579> in <module>()
1 yearly_growth_rate = 30000 * 1.15 ** np.arange(1, 88) - 30000
2 final_number = 30000 * (1.15 ** 88)
----> 3 beachgoers = np.arange(30000, final_number, yearly_growth_rate)
4 beachgoers
5 #danger = ...
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
我在這里先向您的幫助表示感謝
我認為這是因為您的yearly_growth_rate
是一個數組,而不是一個int
。 numpy.arange()
函數采用四個參數:
start
=可選int
類型stop
=要求的地方停下來step-size
=可選尺寸的元件之間( int
) dtype
的=可選輸出型arange
查看文檔以獲取幫助
np.arange
的第三個參數是一個數字 ,您要提供一個數組。 np.arrange
的實現有np.arrange
使用參數的真值來檢查其是否為None
或零。
你只需要
30000 * (1.15 ** np.arange(0, 88))
這將轉化為
[30000 * (1.15 ** 0),
30000 * (1.15 ** 1),
30000 * (1.15 ** 2),
...]
np.arange
的最后一個參數是步驟,應該為數字。 將數組作為參數傳遞毫無意義。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.