python - 如何将像素值从南更改为零和一?
问题描述
我有一个 shape 的图像数组(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”设置为“1”,只需使用:
output[2,63,0] = 1
- 如果您希望所有“0”都为“1”,请使用:(
output = np.where(output == 0, 1, output)
请参阅:https ://docs.scipy.org/doc/numpy-1.15.0/reference/generated/numpy.where.html ) - 如果您只想将一个通道中的“0”设为“1”,请使用:
output[2,:,:] = np.where(output[2,:,:] == 0, 1, output[2,:,:])
希望这可以帮助!
推荐阅读
- ios - iOS 13 模拟器中的“找不到 MIDI 网络驱动程序”崩溃
- python - 如何向用户显示类别
- html - dompdf laravel if 1 div page break 2nd 从新页面开始如何防止?
- angular - Ionic - 使用 ion-toggle 切换功能
- python - Django计算人口金字塔的百分比
- spring-boot - How to convert plain java main method program on docker
- xml - 如何重新分发 MSXML 库?
- java - 为什么我在更换 Arial Narrow 时会得到额外的符号?
- ansible - 使用 Ansible 按第二个列表的特定顺序映射 Debian 软件包列表
- javascript - 我无法正确重新缩放