Я пытаюсь получить диагональные (и антидиагональные) элементы многомерных объектов.
Формы похожи на (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)
? - person Divakar   schedule 25.03.2016[ 31, 45, 6]
вместо[ 6, 45, 31]
? - person Divakar   schedule 25.03.2016