Как можно «сгруппировать» индексы некоторых многомерных массивов в низкоразмерные массивы (тензор более низкого ранга)? - PullRequest
0 голосов
/ 09 ноября 2019

Так что, если я начну с тензора ранга 4, например, $ T_ {ijkl} $. Это 4-мерный массив с формой вроде = (U, V, W, X). Теперь для моей конкретной задачи мне нужно сгруппировать первый и третий индексы и второй и четвертый индексы вместе, чтобы мы получили двумерный массив или тензор ранга 2. Он должен выглядеть как $ T_ {ik}; {jl}$. Какой самый быстрый способ сгруппировать эти показатели. Есть ли какая-нибудь функция numpy для этого? Я хочу избежать циклов и построения новых массивов. В будущем мне также нужно будет разделить индексы, поэтому, если у вас есть какая-либо помощь, это также сработает.

Я уже разбил тензоры на тензоры более высокого ранга, просто создав новый объект другого размера и размеров, а затем заполнив значения в цикле, но это не очень чистый код и, я думаю, неэффективный.

Я попытаюсь привести пример, но не для того, чтобы сделать его слишком сложным (слишком большим для визуализации), я перейду из матрицы (ранг 2) в ранг 1. Это означает, что вы просто сгруппируете два индекса вместе

T = [[1,2,3], 
      [3,4,5]
      [7,8,9]]

unkownfunction(T, index1, index2) = [0,1,2,3,4,5,6,7,8,9]

Но я хочу иметь возможность группировать индексы многомерных тензоров и просто назначать, которые указывают, что я хочу группировать.

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