Первые два должны быть быстрее, хотя.
я есть 2d массив numpy (думаю, изображение в оттенках серого). Я хочу присвоить определенное значение списку координат этого массива, например:
img = np.zeros((5, 5))
coords = np.array([[0, 1], [1, 2], [2, 3], [3, 4]])
def bad_use_of_numpy(img, coords):
for i, coord in enumerate(coords):
img[coord[0], coord[1]] = 255
return img
bad_use_of_numpy(img, coords)
Это работает, но я чувствую, что могу воспользоваться функциональностью Numpy, чтобы сделать это быстрее. У меня также может быть случай использования для чего-то вроде следующего:
img = np.zeros((5, 5))
coords = np.array([[0, 1], [1, 2], [2, 3], [3, 4]])
vals = np.array([1, 2, 3, 4])
def bad_use_of_numpy(img, coords, vals):
for coord in coords:
img[coord[0], coord[1]] = vals[i]
return img
bad_use_of_numpy(img, coords, vals)
Есть ли более векторизованный способ сделать это?