我正在使用 plt.hist() 函式來顯示直方圖。當我在較小的資料集上嘗試時,一切正常。但是,我的原始資料集包含近 30k 個樣本,為此我需要在直方圖上顯示每個樣本 6 個值。我知道這很多,但我需要幫助的是如何縮短我的編譯時間。我等10分鐘沒問題,但是昨天我等了一個多小時結果就放棄了。
如何優化它并減少編譯時間?我的第一個想法是向該函式添加 bins,所以是這樣的:
plt.hist(values, bins=50)
但我不確定垃圾箱到底是做什么的。這會導致列印直方圖對我的資料來說過于籠統,還是只會從我的資料中獲取 50 個第一個值?此外,它會縮短編譯時間嗎?我能做些什么?
uj5u.com熱心網友回復:
但我不確定垃圾箱到底是做什么的。這會導致列印直方圖對我的資料來說過于籠統,還是只會從我的資料中獲取 50 個第一個值?
您可以將 bins 想象成 x 軸的一個磁區。bin 的數量越多,直方圖就越平滑。
擁有 50 個 bin 意味著您正在繪制的資料的范圍值將被細分為 50 個相等的部分,并且在每個 bin 中您將擁有值落在 bin 范圍內的元素的計數。
假設您要制作值為 0 到 99 的元素的直方圖,并且您制作了 10 個 bin。例如,第一個 bin 將計算值為 0 <= elem_val <= 9 的元素數。第二個 bin 將包括值為 10 <= elem_val <= 19 的元素,依此類推。
因此,如果您添加更多 bin,范圍將更小且包含的元素更少,但直方圖將更精確。
此外,它會縮短編譯時間嗎?我能做些什么?
這個答案對我來說不錯:https ://stackoverflow.com/a/39582304/11153525
uj5u.com熱心網友回復:
'bins'的值越大,線條的粗細越小
嘗試:
plt.hist(values, bins=250)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/533883.html
