小编Joh*_*mid的帖子

用大多数周围值填充孔(Python)

我使用Python并拥有一个值为1.0,2.0,3.0,4.0,5.0,6.0和np.nan作为NoData的数组.

我想用一个值填充所有"nan".该值应该是周围值的大部分.

例如:

1 1 1 1 1
1 n 1 2 2
1 3 3 2 1
1 3 2 3 1
Run Code Online (Sandbox Code Playgroud)

在该示例中,"n"将呈现"nan".其大多数邻居的值为1.因此,"nan"将被值1替换.

注意,由"nan"组成的孔的尺寸可以是1到5.例如(最大尺寸为5纳米):

1 1 1 1 1
1 n n n 2
1 n n 2 1
1 3 2 3 1
Run Code Online (Sandbox Code Playgroud)

这里"nan"的洞有以下周围的值:

surrounding_values = [1,1,1,1,1,2,1,2,3,2,3,1,1,1] -> Majority = 1
Run Code Online (Sandbox Code Playgroud)

我尝试了以下代码:

from sklearn.preprocessing import Imputer

array = np.array(.......)   #consisting of 1.0-6.0 & np.nan
imp = Imputer(strategy="most_frequent")
fill = imp.fit_transform(array)
Run Code Online (Sandbox Code Playgroud)

这非常好用.但是,它只使用一个轴(0 =列,1 =行).默认值为0(列),因此它使用同一列的大多数周围值.例如:

Array
2 1 2 1 …
Run Code Online (Sandbox Code Playgroud)

python arrays raster fill

7
推荐指数
1
解决办法
1053
查看次数

标签 统计

arrays ×1

fill ×1

python ×1

raster ×1