Испытание во время выполнения
ался разбить массив на части, где каждый индекс является мультиразмерным. Затем я удаляю i-й подэлемент из каждого индекса.
Например, начиная с этого массива:
>>> a = np.array([[ 1. , 7. , 0. ],
[ 2. , 7. , 0. ],
[ 3. , 7. , 0. ]])
>>> a = np.tile(a, (a.shape[0],1,1))
>>> print a
array([[[ 1. , 7. , 0. ],
[ 2. , 7. , 0. ],
[ 3. , 7. , 0. ]],
[[ 1. , 7. , 0. ],
[ 2. , 7. , 0. ],
[ 3. , 7. , 0. ]],
[[ 1. , 7. , 0. ],
[ 2. , 7. , 0. ],
[ 3. , 7. , 0. ]]])
Желаемый вывод:
b = np.array([[[ 2. , 7. , 0. ],
[ 3. , 7. , 0. ]],
[[ 1. , 7. , 0. ],
[ 3. , 7. , 0. ]],
[[ 1. , 7. , 0. ],
[ 2. , 7. , 0. ]]])
Мне было интересно, если бы был более эффективный способ генерировать этот вывод без необходимости сначала создавать большой массив, а затем удалить из него?
[ОБНОВИТЬ]
Целью этой перестановки была попытка векторизации вместо использования петель для Python. Ответ, предоставленный Дивакаром, очень помог в выполнении этой задачи. Я также хотел бы дать ссылку наэта почта который показывает обратное к этой перестановке, и было полезно переставить вещи обратно для суммирования по всем значениям, когда я закончил.
Кроме того, я пытаюсь использовать ту же технику перестановки на тензор с Tensorflow (см.эта почта)