gpt4 book ai didi

python - 如何在屏蔽数组上运行 numpy 函数 percentile()?

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

我尝试从具有 NoData 值的数组中检索百分位数。在我的例子中,Nodata 值由 -3.40282347e+38 表示。我认为屏蔽数组会将此值排除在进一步计算之外。我成功创建了掩码数组,但对于 np.percentile() 函数,掩码无效。

>>> DataArray = np.array(data)
>>> DataArray

([[ value, value...]], dtype=float32)

>>> masked_data = ma.masked_where(DataArray < 0, DataArray)
>>> p5 = np.percentile(masked_data, 5)
>>> print p5

-3.40282347e+38

最佳答案

如果将掩码值填充为 np.nan,则可以使用 np.nanpercentile

import numpy as np
data = np.arange(-5.5,10.5) # Note that you need a non-integer array to store NaN
mdata = np.ma.masked_where(data < 0, data)
mdata = np.ma.filled(mdata, np.nan)
np.nanpercentile(mdata, 50) # 50th percentile

关于python - 如何在屏蔽数组上运行 numpy 函数 percentile()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37935954/

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