作爲一個較大項目的一部分,我寫了一個函數,它接受一個int整數的字典並返回一個字典,每個「外」鍵鏈接到一個元組的平均值和標準該子字典的偏差(即(mean(dict[key1]), stdev(dict[key1]))
)。我在一個大型數據集上運行(源文件是一個2.8 GB的csv文件),並在計算其中一個子字典的標準偏差時得到一個斷言錯誤。AssertionError:負方差的總和
雖然我會(現在正在追蹤)導致以下錯誤的子字典,但我對一般情況會導致該錯誤感到好奇,因此如果它進一步發生在我的數據集中,我可以嘗試避免它。
我收到的錯誤消息是:
AssertionError: negative sum of square deviations: -3734262324235.697754
從代碼:
import statistics as stat
try: #Check for single value error
std = stat.stdev(val)
except stat.StatisticsError:
std = 0
我假設你使用的是Pythonś3統計模塊(並編輯了你的問題) - 如果不是這種情況,請糾正它。 – jsbueno
這是正確的,我忘記指定 –
這個函數def在這裏是第608行:https://hg.python.org/cpython/file/3.5/Lib/statistics.py - 錯誤來自「 493行的'_ss'''函數。我會說這看起來像檢查錯誤的數據或錯誤的意思。 – wwii