2016-05-31 66 views
2

我有一個浮點數和NaN數組,但當我在數組上調用numpy.nanmean()時,我得到的結果是NaN。這怎麼可能?numpy nanmean中的錯誤

這是陣列的樣品ages

[22.0 38.0 26.0 35.0 35.0 nan 54.0 2.0 27.0 14.0 4.0 58.0 20.0 39.0 14.0 
55.0 2.0 nan 31.0 nan 35.0 34.0 15.0 28.0 8.0 38.0 nan 19.0 nan nan 40.0 
nan nan 66.0 28.0 42.0 nan 21.0 18.0 14.0 40.0 27.0 nan 3.0 19.0 nan nan 
nan nan 18.0 7.0 21.0 49.0 29.0 65.0 nan 21.0 28.5 5.0 11.0 22.0 38.0 45.0 
... 

形狀

(891,) 

np.nanmean(ages)返回nan

+1

因爲都是'NaNs'? – Divakar

+0

不可以,這就是要點 – therealcode

+0

你是沿一個座標軸還是跨所有元素調用'numpy.nanmean()'? – Divakar

回答

1

正如我們在上述評論想通,具有numpy.ndarray地D型細胞在一維列表中很奇怪,看起來你只有浮動和NaN在那裏。這使我認爲你是以有缺陷的方式生成你的數據,就像從文件內容手動創建數組而不刪除空行等。

爲了解決這個問題,將數組轉換(或查看)到不同的D型。嘗試

np.nanmean(ages.astype('float64')) 

如果這樣的作品,你應該永久地改變它的D型

ages = ages.astype('float64') 

並重新檢查陣列一代不如我99%肯定是事關在那裏。