有效地将一组 {coordinate+value} 绘制到(numpy 数组)位图

Efficiently plot set of {coordinate+value}s to (numpy array) bitmap

假设我有一组像素值,例如

> S[42]
6, 2, (0.1, 0, 0)

^ 此处第 42 个条目用于像素位置 (6,2),颜色为暗红色。

如何有效地将 S 绘制到新的 numpy 位图数组 bitmap = np.zeros((1024, 768, 3)) 中?

是否有矢量化解决方案(而不是 for 循环)?

如果有帮助,我可以将 S 按列拆分为 S_xS_yS_RGB

这就是你的做法,是的,拆分很有帮助,并使用我下面的相同数据类型

bitmap = np.zeros((10, 10, 3))
    
s_x = (1,2,3) ## tuple
s_y = (0,1,2) ## tuple
pixal_val = np.array([[0,0,1],[1,0,0],[0,1,0]]) ## np

bitmap[s_y, s_x] = pixal_val

plt.imshow(bitmap)

输出:

编辑:

它确实可以使用 numpy 数组作为坐标,但要确保它们是 int 类型

bitmap = np.zeros((10, 10, 3))

s_x = np.array([a for a in range(10)], dtype=int)
s_y = np.array([a for a in range(10)], dtype=int)
    
np.random.shuffle(s_x)
np.random.shuffle(s_y)

pixel_val = np.random.rand(10,3)

bitmap[s_y, s_x] = pixel_val

plt.imshow(bitmap)

最终编辑: s_x ans s_y 我在上面修复的错误方法