在三维numpy数组[row x col x ch]中,用NaNs填充,例如,
>>> a = np.ones((5, 5, 3))
>>> a[0, :, 0] = np.nan
>>> a[:, 0:2, :] = np.nan
>>> a[4, 4, 0] = np.nan
>>> a[:, :, 0]
array([[nan, nan, nan, nan, nan],
[nan, nan, 1., 1., 1.],
[nan, nan, 1., 1., 1.],
[nan, nan, 1., 1., 1.],
[nan, nan, 1., 1., nan]])
>>> a.shape
(5, 5, 3)
如何在边框的任何通道中裁剪包含NaN的所有行和列?
在我的例子中,我想要的结果是一个数组
>>> a_cropped[:, :, 0]
array([[1., 1.],
[1., 1.],
[1., 1.]])
>>> a_cropped.shape
(3, 2, 3)
这与this question有关。但是,我完全没有中心的矩形区域,可以毫不含糊地提取出来。
我假设我首先必须一个接一个地剥去边界的行和列,以便不删除"有效"领域