Arrays 高效地将{coordinate+;value}的集合打印到(numpy数组)位图

Arrays 高效地将{coordinate+;value}的集合打印到(numpy数组)位图,arrays,numpy,vectorization,Arrays,Numpy,Vectorization,假设我有一组像素值,例如 >S[42] 6, 2, (0.1, 0, 0) ^这里第42个条目用于暗红色的像素位置(6,2) 如何有效地将S绘制到一个新的numpy位图数组bitmap=np.zeros((1024768,3)) 是否有一些矢量化的解决方案(而不是针对循环的) 我可以按列将S拆分为S\u x、S\u y和S\u RGB,如果这样有帮助的话。这就是您的操作方式,是的,拆分很有帮助,并使用下面相同的数据类型 bitmap = np.zeros((10, 10, 3)) s

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

>S[42]
6, 2, (0.1, 0, 0)
^这里第42个条目用于暗红色的像素位置
(6,2)

如何有效地将
S
绘制到一个新的numpy位图数组
bitmap=np.zeros((1024768,3))

是否有一些矢量化的解决方案(而不是针对循环的


我可以按列将
S
拆分为
S\u x
S\u y
S\u 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_xans s_y我在上面纠正了错误的方向

如此漂亮的答案。我现在在屏幕外遇到了麻烦。我在这里问: