【发布时间】:2018-04-11 10:50:56
【问题描述】:
我有 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)
有没有更矢量化的方式来做到这一点?
【问题讨论】:
标签: python python-3.x numpy vectorization