【发布时间】:2019-08-15 13:33:49
【问题描述】:
我遇到了一个奇怪的问题。
有一个图像,我只需要重新计算非零像素。我想通过numpy 来做这件事,因为我处理了数千张图片,而且我需要它的速度。
这是一个具有较低维度的简化示例。
假设我有以下矩阵:
[[0, 0, 1],
[0, 2, 0],
[0, 6, 0]]
假设我想将每个值乘以 2.0 并添加 0.5。
matrix = matrix * 2.0 + 0.5
结果是:
[[0.5, 0.5, 2.5],
[0.5, 4.5, 0.5],
[0.5, 12.5, 0.5]]
我希望它是:
[[0, 0, 2.5],
[0, 4.5, 0],
[0, 12.5, 0]]
显然,我可以在 for 循环中使用 if pixel == 0: continue 执行此操作,但这会非常慢。而且我无法摆脱只剩下规范化组件的添加。
所以我一直在想,可以通过numpy 完成吗?
【问题讨论】:
标签: python python-3.x numpy slice numpy-ndarray