2013-05-28 378 views
1

从掩蔽二维数组是这样的:(x = --numpy的:夹/切2D屏蔽数组

x x x x 
x 5 6 x 
x x x x 
x x 9 x 

我怎样才能获得:(围边缘尽可能直到到达数)

5 6 
x x 
x 9 

谢谢。

回答

0

这应该做你想为一个通用的情况切片:

import numpy as np 
si, se = np.where(~x.mask) 
x = x[si.min():si.max() + 1, se.min():se.max() + 1] 
+0

看起来像一个优雅的方式来做....谢谢 – WKT

0

使用切片:-)

slice = x[1:, 1:-1] 

您还可以修整边缘:

while all(x.mask[0, :]): x = x[1:, :] 
while all(x.mask[-1, :]): x = x[:-1, :] 
while all(x.mask[:, 0]): x = x[:, 1:] 
while all(x.mask[:, -1]): x = x[:, :-1] 
+0

我相信OP想要尽可能地限制边缘,直到达到一个数字,所以这不会回答它 – jamylak

+0

是的,jamylak。 Thx,我更新了。 – WKT

+0

@Azimo仍然不回答问题 – jamylak