Python numpy.permute_dims与Julia permutedims多维矩阵置换行为差异问询
NumPy permute_dims 与 Julia permutedims 的行为差异
我发现Python的numpy.permute_dims函数与Julia的Base.permutedims函数存在行为差异。用包含0到26元素的3×3×3矩阵测试时,当轴参数为(1,2,0)(Python)和[2,3,1](Julia)时结果一致,但轴参数为(0,2,1)(Python)对应[1,3,2](Julia)时结果不同。按文档描述,这两个函数应等效,原本以为permutedims的非递归特性以及Julia的列主序不会导致这种差异。
Python 代码与输出
import numpy as np 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]) print(arr_perm)
输出:
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]]])
Julia 代码与输出
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]) println(arr_perm)
输出:
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
内容的提问来源于stack exchange,提问作者Borealis
相关产品推荐
相关产品推荐

