擅长:python、mysql、java
<p>我现在只能想到一个慢版本,带有for循环。但是如果数组是稀疏的,那么这就可以了。也许其他人可以将其矢量化</p>
<pre><code>import numpy as np
image = np.zeros(shape=(3,4 ),dtype=np.uint8) # image is empty
# evy is just a bag of nonzero pixels
evy=np.zeros(shape=(3), dtype = [('x', '<u2'),('y', '<u2') ,('grayVal','<u2') ])
evy[0]=(1,1,128)
evy[1]=(0,0,1)
evy[2] =(2,3,255)
#slow version
for i in range(3):
image[evy[i][0],evy[i][1]]=evy[i][2]
</code></pre>
<p>输出:</p>
<pre><code>array([[ 1, 0, 0, 0],
[ 0, 128, 0, 0],
[ 0, 0, 0, 255]], dtype=uint8)
</code></pre>
<p> </p>