Im пытается получить диагональные (и антидиагональные) элементы многомерных объектов.Получите все диагонали (включая младшие) многомерного массива с numpy
Формы как (2,2)
, (3,3,3)
, (4,4,4,4)
, (5,5,5,5,5)
и так далее. Я не думаю, что это слишком актуально.
Я нашел способы получить диагональные элементы, используя метод .diagonal
ndarray
, но я не могу найти ничего, что могло бы вызвать у меня антидиагональное.
Так что я должен сделать это вручную?
[EDIT] Так
array([[[54, 81, 31],
[ 4, 83, 18],
[38, 32, 52]],
[[ 2, 45, 87],
[33, 20, 3],
[85, 31, 35]],
[[ 6, 11, 49],
[39, 76, 75],
[28, 52, 63]]])
Так что я хочу, "горизонтальные" диагоналей, как:
[54, 45, 49],
[ 4. 20, 75],
etc.
, но тогда они также являются горизонтальными в некотором смысле
[ 6, 45, 31],
[39, 20, 18]
, а затем «вертикальные»:
[54, 33, 28],
[81, 20, 52],
etc.
но это также вертикальная:
[6, 33, 38],
[11, 20, 32]
и этот один, но вы бы назвали это
[54, 20, 63]
, а затем они также "длинные" диагоналей, как предыдущий (более длинный в геометрическом смысле, если вы думаете о матрице как трехмерной геометрической структуре, причем числа размещаются на вершинах куба и на середине линий между ними)
[38, 20, 49],
[6, 20, 52]
Тогда, небольшая диагональ будет один, который идет справа налево или снизу вверх (но не оба одновременно) в этой матрице, что-то вроде:
[31, 45, 6],
[31, 83, 38] # this is the first classical anti-diagonal in the first matrix
Конечно , Я не использовал здесь все диагонали, но это мое требование. Мне не нужны диагонали, которые смещены от любой из основных/антидиагоналей.
Если вы также знаете, что это невозможно, сообщите, потому что я сделаю это вручную.
Список входной образец и ожидаемый выход для многомерного случая массива, как '(3,3,3) '? – Divakar
Какова (основная и анти) диагональ трехмерных или четырехмерных массивов? Потому что их много – JeD
@ Дивакар Да ... Я хочу всех. Я хочу все возможные диагонали. Я пытаюсь построить многомерную версию tic-tac-toe –