我有一个带有浮点数和NaN的数组但是当我在数组上调用numpy.nanmean()
时,我得到NaN
作为结果。这怎么可能?
这是数组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
答案 0 :(得分:3)
正如我们在上面的评论中所发现的那样,在一维列表中有一个numpy.ndarray
的dtype是奇怪的,当它出现时你只有浮点数和NaN
s。这让我觉得你是以一种有缺陷的方式生成你的数据,比如从文件的内容手动创建数组而不删除空行等等。
要解决此问题,请将数组转换(或查看)为不同的dtype。尝试
np.nanmean(ages.astype('float64'))
如果有效,则应永久更改其dtype
ages = ages.astype('float64')
并重新审视您的阵列生成,因为我99%确定有些东西在那里。