Индексирование многомерного массива из списка индексов в NumPy - PullRequest
0 голосов
/ 07 февраля 2019

Скажем, у меня есть массив вида

array = np.random.rand(50, 50, 2)

, и у меня есть список кортежей индексов, который будет содержать дубликаты:

indices = [(0, 2), (0, 3), (0, 2), (1, 1), (0, 3), (0, 2)]

Я пытаюсь вычислитьлучший способ создать диаграмму рассеяния элементов массива, взятых из индексов, с 3-м измерением массива, дающим координаты x и y точки, которая будет построена.Я пробовал несколько разных вещей, но понял, что простая индексация массива не даст мне то, что я ищу, из-за того, как работает трансляция.Я могу реализовать это, перебирая массив и добавляя точки, которые я хочу, в новый массив, но это кажется мне непитонным, и я хочу убедиться, что я изучаю правильные привычки.

1 Ответ

0 голосов
/ 07 февраля 2019

У меня есть решение, вдохновленное hpaulj выше.Я могу преобразовать список кортежей индексов в массив и использовать длинное измерение результирующего массива для индексации моего большого массива, например, так:

index_array = np.array(indices)
reduced_array = array[index_array[:,0],index_array[:,1],:]

, а затем использовать в качестве входных данных для моего разброса в качестве параметра output_array.участок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...