我有一个(4, 64, 256)
形状的图像阵列。
在像素[63, 0]
处,我发现了nan值。
output[:, 63, 0] -----> array([nan, nan, nan, 1.])
因此,在使用output = np.nan_to_num(output)
之后,我成功获得了:
output[:, 63, 0] -----> array([0., 0., 0., 1.])
然后我无法得到这样的声音:
output[:, 63, 0] -----> array([0., 0., 1., 1.])
我尝试了new = output[np.where(output[2, 63, 0] == 0), [2, 63, 0]] = 1
但它给出1而不是array([0., 0., 1., 1.])
请帮我解决这个问题。
答案 0 :(得分:2)
这取决于您要完成的工作:
output[2,63,0] = 1
output = np.where(output == 0, 1, output)
(请参阅:https://docs.scipy.org/doc/numpy-1.15.0/reference/generated/numpy.where.html)output[2,:,:] = np.where(output[2,:,:] == 0, 1, output[2,:,:])
希望这会有所帮助!