這是一段非常短的代碼......
import numpy as np
test = [0.4, 0.5, 0.6, 0.6, 0.0, 0.3, 0.5, 0.5, 0.8, 0.4]
np.histogram(test, bins=np.arange(0, 1 0.1, 0.1))
...這是輸出,其中第一個陣列是直方圖資料,第二個陣列給出 bin 邊緣:
(array([1, 0, 1, 0, 2, 5, 0, 0, 1, 0]),
array([0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1. ]))
我對輸出的直方圖資料感到困惑。根據檔案,除了最后一個是 [a, b] 之外,這些 bin 都是 [a, b) 形式的半區間。但是,這與直方圖資料不一致。例如,第 5 個元素是 5,它應該對應于 bin [0.5, 0.6),但這個區間只有三個數字!我要瘋了嗎?
uj5u.com熱心網友回復:
這是一件讓人們大吃一驚的常見事情。直方圖函式確實像宣傳的那樣作業,但數字并不像您期望的那樣......第 5 個桶的右邊緣實際上略有偏移,因為以下回傳 False:
np.arange(0, 1 0.1, 0.1)[6] == 0.6
有關更多詳細資訊,請參閱:浮點數學是否損壞?
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/454638.html
