阵列中的矩形掩模

2024-04-27 21:48:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在数组的所有边上应用一个遮罩,例如3x3数组:

0 0 0
0 1 0
0 0 0

在堆栈中我找到了这个命令,但是我不能应用第二个条件来获得我的特定数组。。。在

^{pr2}$

我明白了:

0 0 0
0 0 0 
0 0 1

Tags: 命令堆栈数组条件pr2
2条回答

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

>>> 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)

可以直接从一维遮罩构造二维遮罩:

In [6]: np.logical_and.outer([0,1,0],[0,1,0])
Out[6]:
array([[False, False, False],
       [False,  True, False],
       [False, False, False]], dtype=bool)

编辑: 对于一般情况,您可以执行以下操作:

^{pr2}$

相关问题 更多 >