如何在Julia中切换n维数组的轴(维度)

7 投票
1 回答
5377 浏览
提问于 2025-04-18 13:59

我有一个数组,我想要改变它的轴的顺序。这个操作有点像转置,但我想对维度大于2的数组进行这个操作。在Python中,我会用np.transpose,在Matlab中用permute,但我在Julia中找不到类似的功能。例如,

a = ones(2, 3, 4)
size(a)
(2,3,4)

我想从这个数组得到一个形状为(3, 4, 2)的数组,通过将轴(维度)重新排列为(2, 3, 1)。我在找一个叫做new_func的函数。

b = new_func(a, (2, 3, 1))
size(b)
(3,4,2)

1 个回答

10

根据Stefan Karpinski的说法,答案是 Base.permutedims文档)。

示例:

a = ones(2, 3, 4)
size(a) # => (2,3,4)

b = permutedims(a, [2, 3, 1])
size(b) # => (3,4,2)

撰写回答