【问题标题】:Permutate image dimensions in Python [duplicate]在Python中排列图像尺寸[重复]
【发布时间】:2019-04-04 20:27:23
【问题描述】:

我想在 MATLAB 中为 Python 中的数组执行与 permute.m 等效的操作。

例如:A 是一个 4D 数组,形状为 (50,50,3,100),我想制作为 (100,50,50,3)。在 MATLAB 中可以这样做:

B = permute(A,[4,1,2,3])

如何在 Python 中做到这一点?

【问题讨论】:

    标签: python


    【解决方案1】:

    如果你使用 numpy,你可以使用 swapaxes

    numpy.swapaxes(a, axis1, axis2)
    
    
    # equivalent to [4,1,2,3]
    B = A.swapaxes(3,0).swapaxes(1,3).swapaxes(2,3)
    

    或转置

    B = A.transpose((3,0,1,2))
    

    否则你可以使用 np.moveaxis

    B = A.moveaxis([0, 1, 2, 3], [-3, -2, -1, -4])
    

    【讨论】:

      【解决方案2】:

      如果你想要转置你的数组,Numpy 数组有一个 .transpose 方法,你只需要记住 Python 从零开始计数

      b = a.transpose((3,0,1,2))
      

      请注意,该方法采用单个参数,一个描述轴排列的元组)。

      【讨论】:

      • 我使用了小写字母,因为习惯上将大写保留为classes,在较小程度上保留为常量。
      猜你喜欢
      • 2011-04-22
      • 1970-01-01
      • 1970-01-01
      • 2015-06-22
      • 2014-04-23
      • 1970-01-01
      • 2021-05-05
      • 2019-01-04
      • 2017-04-06
      相关资源
      最近更新 更多