python - pylab直方图去掉nan

标签 python numpy matplotlib histogram nan

当我的一些数据包含“非数字”值时,我在制作直方图时遇到了问题。我可以通过使用 numpy 中的 nan_to_num 来消除错误,但是我得到了很多零值,这也弄乱了直方图。

pylab.figure()
pylab.hist(numpy.nan_to_num(A))
pylab.show()

所以我们的想法是制作另一个数组,其中所有 nan 值都消失了,或者只是以某种方式在直方图中屏蔽它们(最好使用一些内置方法)。

最佳答案

使用 A[~np.isnan(A)] 从数组中删除 np.nan 值,这将选择 A 中的所有条目> 哪些值不是nan,因此在计算直方图时将排除它们。以下是如何使用它的示例:

>>> import numpy as np
>>> import pylab

>>> A = np.array([1,np.nan, 3,5,1,2,5,2,4,1,2,np.nan,2,1,np.nan,2,np.nan,1,2])

>>> pylab.figure()
>>> pylab.hist(A[~np.isnan(A)])
>>> pylab.show()

enter image description here

关于python - pylab直方图去掉nan,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19090070/

相关文章:

python - 调整 numpy.memmap 数组的大小

python - 更快的 numpy 解决方案而不是 itertools.combinations?

python - 在 Matplotlib 散点图中突出显示数据间隙 (NaN)

python - 绘制 2D 热图

python - 使用 pyodbc 使用唯一日期作为引用从 2 个表中提取数据

python - 如何在装饰器中注册它装饰的所有功能?

python - SQLAlchemy 转换为带有时区的 PostgreSQL 时间戳

python - 有没有办法使用 Python 发现用户的 Windows 桌面路径?

python - Pandas :如何更快地应用于数据框?

python - 如何构建 numpy 二维数组的直方图