gpt4 book ai didi

python - matplotlib hist 同时忽略特定的无数据值

转载 作者:太空狗 更新时间:2023-10-29 22:23:36 26 4
gpt4 key购买 nike

我有一个二维 numpy 数组,其中 1.0e6 作为无数据值。我想生成数据的直方图,虽然我已经成功了,但这并不是最好的方法。

from matplotlib import pyplot
import sys

eps = sys.float_info.epsilon
no_data = 1.0e6

e_data = elevation.reshape(elevation.size)
e_data_clean = [ ]

for i in xrange(len(e_data)):
val = e_data[i]
# floating point equality check for val aprox not equal no_data
if val > no_data + eps and val < no_data - eps:
e_data_clean.append(val)

pyplot.hist(e_data_clean, bins=100)

似乎应该有一个干净的(并且更快的一个衬垫)。有吗?

最佳答案

您可以使用 bool 数组来选择所需的索引:

selected_values = (e_data > (no_data + eps)) & (e_data < (no_data - eps))
pyplot.hist(e_data[selected_values])

(e_data > (no_data + eps)) 将创建一个与 e_data 形状相同的 np.bool 数组,设置为True 在给定索引处当且仅当该索引处的值大于 (no_data + eps)& 是元素方面的 and 运算符,可以同时满足这两个条件。

或者,如果 no_data 只是一个约定,我会将这些值设置为 numpy.nan,并使用 e_data[numpy.isfinite(e_data) ]

关于python - matplotlib hist 同时忽略特定的无数据值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8039276/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com