выбор изображений согласно заданным c значениям индекса в массиве numpy - PullRequest
0 голосов
/ 18 марта 2020

У меня есть массив, содержащий изображения данных следующим образом.

print(np.shape(input_data_transformed))

(120, 120, 1, 589)

Здесь input_data_transformed есть * Массив 1023 *, содержащий 589 изображений. Каждое изображение имеет размер 120x120 с одним каналом.

У меня есть еще один массив NumPy, называемый индексным массивом, следующим образом.

index_array=np.array([  8,   9,  10,  11, ..............., 584, 585, 586])

Я хочу выбрать изображения из input_data_transformed согласно значениям индекса в index_array

Таким образом, final_filtered_data должен содержать только те данные изображений, индекс которых указан в index_array

final_filtered_data=?

1 Ответ

1 голос
/ 18 марта 2020

Похоже, ваши размеры в неправильном порядке. Вы можете transpose и затем просто индексировать по первой оси:

input_data_transformed.transpose(3,2,0,1)[index_array]

Проверка на примере:

a = np.random.rand(120, 120, 1, 589)
index_array=np.array([  8,   9,  10,  11, 584, 585, 586])

a.transpose(3,2,0,1)[index_array].shape
# (7, 1, 120, 120)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...