Я уже пробовал различные комбинации np.rot90 , np.fliplr, np.transpose, np.flipud, но ни один из них не может дать мне исходную форму массива 5x3 со всеми перевернутыми антидиагоналями.
Есть идеи, как это сделать?
Пример:
Код: Выделить всё
[[ 1 2 4]
[ 3 5 7]
[ 6 8 10]
[ 9 11 13]
[12 14 15]]
Код: Выделить всё
[[ 1 3 6]
[ 2 5 9]
[ 4 8 12]
[ 7 11 14]
[10 13 15]]
Вдохновленный уже предоставленными ответами (статус 2024-05-23 11:37 CET) и переосмыслением того, каким будет наиболее эффективный способ выполнения необходимого преобразования, кажется, что предоставление простой функции, принимающей два индекса: Столбец-X,
Код: Выделить всё
Row-yКод: Выделить всё
>>> srcArr
array([[ 1, 2, 3, 4, 5, 6],
[ 7, 8, 9, 10, 11, 12],
[13, 14, 15, 16, 17, 18],
[19, 20, 21, 22, 23, 24]])
>>> def oneBasedXY(column, row):
... return ( row - 1, column - 1 )
...
>>> srcArr[oneBasedXY(3,4)]
21
>>> srcArr[(3,4)]
23
Подробнее здесь: https://stackoverflow.com/questions/785 ... ay-without