簡體   English   中英

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

[英]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 =可選尺寸的元件之間( intdtype的=可選輸出型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.

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