我有2個數組[nx1]分別存儲xpixel(樣本)和ypixel(線)座標。我有另一個數組[nxn]存儲圖像。我想要做的是創建一個第三個數組,它將圖像數組中的像素值存儲在給定的座標處。我有以下工作,但不知道內置numpy函數是否會更有效。numpy索引與陣列
#Create an empty array to store the values from the image.
newarr = numpy.zeros(len(xsam))
#Iterate by index and pull the value from the image.
#xsam and ylin are the line and sample numbers.
for x in range(len(newarr)):
newarr[x] = image[ylin[x]][xsam[x]]
print newarr
隨機生成器確定xsam和ylin的長度以及圖像的行進方向。因此每次迭代都完全不同。
您不必解開'ylin'和'xsam'。如果你不這樣做,'newarr'將保持與'ylin'或'xsam'相同的形狀,這是非常有用的(當然,OP的代碼會返回一個'newarr'的代碼,但是你可以'如果你想的話,最後擠壓''newarr')。 – jorgeca
@jorgeca:是的。 '.squeeze'也可以在這裏工作。 – jfs