這里我有一個一維陣列:
>>> import numpy as np
>>> a = np.array([75491328, 75491328, 75491328, 75491328, 75491328, 75491328, 75491328, 75491328,
75491328, 75491328, 75491328, 75491328, 75491328, 75491328, 75491328, 75491328,
75491328, 75491328, 75491328, 75491328, 75491328, 75491328, 75491328, 75491328,
75491328, 75491328, 75491328, 75491328, 75491328, 75491328, 75491328, 75491328,
75491328, 75491328, 75491328, 75491328, 75491328, 75491328, 75491328, 75491328,
75491328, 75491328, 75491328, 75491328, 75491328, 75491328, 75491328, 75491328,
75491328, 75491328, 75491328, 75491328, 75491328, 75491328, 75491328, 75491328,
75491328, 75491328, 75491328, 75491328, 75491328, 75491328, 75491328, 75491328])
并且陣列中所有元素的總和應該是75491328*8*8 = 4831444992。但是,當我使用 時np.sum,會得到不同的輸出。
>>> np.sum(a)
536477696
這就是使用最新版本 Numpy 在我的 Jupyter Notebook 上發生的情況。但是當我使用 Numpy 的舊版本 1.18.4 使用 Coursera 的 Jupyter Notebook 時,一切都很好。
我該如何修復這個錯誤?是bug還是因為我?請解釋并幫助我解決這個問題。提前致謝。
uj5u.com熱心網友回復:
這將回傳與您預期相同的答案:
$ ./venv/bin/python --version
Python 3.9.7
要求.txt
numpy==1.21.3
主檔案
#!./venv/bin/python
import numpy as np
a = np.array([75491328, 75491328, 75491328, 75491328, 75491328, 75491328, 75491328, 75491328,
75491328, 75491328, 75491328, 75491328, 75491328, 75491328, 75491328, 75491328,
75491328, 75491328, 75491328, 75491328, 75491328, 75491328, 75491328, 75491328,
75491328, 75491328, 75491328, 75491328, 75491328, 75491328, 75491328, 75491328,
75491328, 75491328, 75491328, 75491328, 75491328, 75491328, 75491328, 75491328,
75491328, 75491328, 75491328, 75491328, 75491328, 75491328, 75491328, 75491328,
75491328, 75491328, 75491328, 75491328, 75491328, 75491328, 75491328, 75491328,
75491328, 75491328, 75491328, 75491328, 75491328, 75491328, 75491328, 75491328])
print("output should be \n 4831444992")
print("calculated output \n",np.sum(a))
輸出
output should be
4831444992
calculated output
4831444992
您的實際代碼是否有可能對資料型別具有不同的精度或覆寫?
uj5u.com熱心網友回復:
問題是由整數溢位引起的,您應該將資料型別更改np.array為int64。
import numpy as np
np.array([Your values here], dtype=np.int64)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/330951.html
