我想在数组的所有边缘周围应用蒙版,例如在3x3数组中:

0 0 0
0 1 0
0 0 0


在堆栈中,我找到了此命令,但是我无法应用第二个条件来获取我的特定数组...

import numpy as np
np.logical_and.outer(np.arange(3) >= 2, np.arange(3) >= 2)


我明白了 :

0 0 0
0 0 0
0 0 1

最佳答案

您总是可以构造一个掩码来取消选择第一行和最后一行/列,如下所示:

>>> mask = np.ones((3, 3), dtype=bool)
>>> mask
array([[True, True, True],
       [True, True, True],
       [True, True, True]], dtype=bool)

>>> mask[0], mask[-1], mask[:,0], mask[:,-1] = False, False, False, False
>>> mask
array([[ False,  False,  False],
       [ False,  True,   False],
       [ False,  False,  False]], dtype=bool)

关于python - 阵列中的矩形 mask ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26107685/

10-16 11:00