【发布时间】:2016-12-28 02:58:24
【问题描述】:
我需要一种快速的方法来找到字符串中三个相邻元素中的最小元素,并将其添加到中心元素下的元素中。对于边框元素,只有两个上部元素在检查。
例如我有一个 numpy 数组:
[1, 2, 3, 4, 5],
[0, 0, 0, 0, 0]
我应该得到这个:
[1, 2, 3, 4, 5],
[1, 1, 2, 3, 4]
我有这个代码:
for h in range(1, matrix.shape[0]):
matrix[h][0] = min(matrix[h - 1][0], matrix[h - 1][1])
matrix[h][1:-1] = ...(DONT KNOW, WHAT SHOULD BE HERE!!)
matrix[h][-1] = min(matrix[h - 1][-2], matrix[h - 1][-1])
如果我有太多数据并且需要加快速度,我如何在不使用更多 for 循环的情况下计算它? Edit:David-z,这是我的项目)
【问题讨论】:
-
看起来您正在尝试对具有许多行的整个二维数组执行此操作。您真的需要 all 值,还是只需要最后一行,或者只需要最后一行中的一个值?在后一种情况下,您可能可以使用一些更专业的算法。
-
@david-z 我处理大图像,我计算了一些能量,将它们转换为 YUV。是的,我需要计算每个值,找到最后一行的最小值!重要的是要在整个图像中找到接缝,我将删除它以智能地调整图像大小。
标签: python arrays performance numpy slice