2016-05-31 63 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%肯定是事关在那里。