Я читал об индексации numpy, но не нашел того, что искал.
У меня есть изображение 288*384, где каждый пиксель может иметь маркировку в [0,15]. Он хранится в массиве 3d (288 384,16) numpy im
.
С помощью im[:,:,1]
я могу, например, получить изображение, в котором все пиксели имеют метку 1.
У меня есть еще один двумерный массив labelling
в форме (288 * 384), содержащий метку для каждого пикселя.
Как мне получить изображение, в котором каждому пикселю соответствует соответствующий пиксель, используя умную нарезку?
Используя циклы, это будет:
result = np.zeros((288,384))
for x,y in zip(range(288), range(384)):
result[x,y] = im[x,y,labelling[x,y]]
Но это, конечно, неэффективно.