You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 20:58:12