2013-05-28 190 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