为了账号安全,请及时绑定邮箱和手机立即绑定

更快的 numpy 数组索引

更快的 numpy 数组索引

慕尼黑8549860 2021-07-07 09:06:17
我想索引 RGB 图像中的一些特定像素。我对 Python 比较陌生,所以我已经实现了索引,就像我在 Java/C# 中所做的那样。这是代码:# Pane width (height)pane_step, center = 20, 10for i in range(0, field_size * pane_step, pane_step):    for j in range(0, field_size * pane_step, pane_step):        r, g, b, = img[i + center, center + j, :]        if (r, g, b) == (255, 0, 0):            grid[int(i / pane_step)][int(j / pane_step)] = 2        elif (r, g, b) == (0, 128, 0):            grid[int(i / pane_step)][int(j / pane_step)] = 1        elif (r, g, b) == (0, 0, 0):            grid[int(i / pane_step)][int(j / pane_step)] = -1有没有更快、更“pythonic”的方法可以给我同样的结果?
查看完整描述

2 回答

?
互换的青春

TA贡献1797条经验 获得超6个赞

这是你要找的吗?您可以使用 numpy 轻松选择中心和步长,然后遍历数组或直接在任何操作中使用它。


import numpy as np

d = np.arange(100).reshape((10,10))


center, step = 3


print(d[center::step, center::step])


array([[33, 36, 39],

      [63, 66, 69],

      [93, 96, 99]])


查看完整回答
反对 回复 2021-07-27
  • 2 回答
  • 0 关注
  • 143 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信