【发布时间】:2021-08-07 13:39:23
【问题描述】:
我目前正在将一些Matlab代码转换为Python,我想知道是否有与Matlab的shiftdim(A, n)类似的功能
B = shiftdim(A,n) 将数组 A 的维度移动 n 个位置。当 n 为正整数时,shiftdim 将维度向左移动,当 n 为负整数时,将维度向右移动。例如,如果 A 是一个 2×3×4 数组,则 shiftdim(A,2) 返回一个 4×2×3 数组。
【问题讨论】:
-
在 Python 中,将代码写成矩阵运算的重要性要小得多。在 Matlab 中,您希望尽可能避免循环,因为它们很慢。如果 shiftdim 用于将您的问题转换为矩阵运算,那么可能有一种不同的、更 Pythonic 的方法。
-
@user_na,他可能正在使用具有类似矩阵功能的numpy。
-
似乎
np.transpose会处理它。但是要得出正确的顺序需要一些思考。从文档开始,并尝试一些小例子。例如arr.transpose(2,0,1)
标签: python matlab numpy equivalent