Я заметил разницу в поведении между numpy.permute_dims Python и Base.permutedims Julia.
На входной матрице 3x3x3, содержащей элементы 0:26 , включительно на обоих языках, они согласны с аргументом осей (1,2,0), но не согласны с (0,2,1).
Насколько я могу судить из документации , эти функции должны быть эквивалентны. Есть примечание о том, что permutedims нерекурсивны, но я не понимаю, почему это должно иметь поведенческие последствия.
Julia также является порядком по столбцам, но опять же, я не понимаю, почему это должно повлиять на общее поведение.
Код Python:
arr = np.array([[[0, 1, 2],
[3, 4, 5],
[6, 7, 8]],
[[9, 10, 11],
[12, 13, 14],
[15, 16, 17]],
[[18, 19, 20],
[21, 22, 23],
[24, 25, 26]]])
arr_perm = np.permute_dims(arr, axes=[0,2,1])
Вывод:
array([[[ 0, 3, 6],
[ 1, 4, 7],
[ 2, 5, 8]],
[[ 9, 12, 15],
[10, 13, 16],
[11, 14, 17]],
[[18, 21, 24],
[19, 22, 25],
[20, 23, 26]]])
Код Джулии:
arr = [
0 1 2
3 4 5
6 7 8;;;
9 10 11
12 13 14
15 16 17;;;
18 19 20
21 22 23
24 25 26
]
arr_perm = permutedims(arr, [1,3,2])
Вывод:
3×3×3 Array{Int64, 3}:
[:, :, 1] =
0 9 18
3 12 21
6 15 24
[:, :, 2] =
1 10 19
4 13 22
7 16 25
[:, :, 3] =
2 11 20
5 14 23
8 17 26
Подробнее здесь: https://stackoverflow.com/questions/790 ... sagreement
Перестановка многомерной матрицы Разногласия между Джулией и Python ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение