gpt4 book ai didi

python - 如何用紧邻屏蔽值的平均值替换 numpy 数组中的屏蔽值

转载 作者:太空狗 更新时间:2023-10-30 01:39:02 24 4
gpt4 key购买 nike

将数组中的屏蔽值替换为它们旁边最接近的未屏蔽值的平均值的最有效 numpy 方法是什么?

例如:

a = np.array([2,6,4,8])
b = np.ma.masked_where(a>5,a)
print b

masked_array(data = [2 -- 4 --],
mask = [False True False True],
fill_value = 999999)

我希望将 b 中的掩码值替换为紧邻它们的平均值。边界可以重复最接近的未屏蔽值。因此,在此示例中,b 将如下所示:

b = [2,3,4,4]

提出这个问题的主要原因是看看是否可以在不使用迭代器的情况下有效地完成此操作。

最佳答案

你可以使用np.interpnp.where

import numpy as np

a = np.array([2,6,4,8])
mymask = a>5
b = np.ma.masked_where(mymask,a)

print b
# [2 -- 4 --]

c = np.interp(np.where(mymask)[0],np.where(~mymask)[0],b[np.where(~mymask)[0]])
b[np.where(mymask)[0]] = c

print b
# [2 3 4 4]

关于python - 如何用紧邻屏蔽值的平均值替换 numpy 数组中的屏蔽值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32450900/

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