Так что, если я начну с тензора ранга 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]
Но я хочу иметь возможность группировать индексы многомерных тензоров и просто назначать, которые указывают, что я хочу группировать.