【问题标题】:How to reshape in Python by preserving structure of matrix如何通过保留矩阵的结构在 Python 中重塑
【发布时间】:2021-07-06 09:17:12
【问题描述】:

我正在尝试进行我认为微不足道的转换,但我无法找到任何解决方案。我有一个维度数组 (3, 3, 2),例如:

array([[1,2], [3,4], [5,6]],
[[7,8], [9,0], [1,2]],
[[3,4], [5,6], [7,8]])

我想将其转换为如下形式的 (2, 3, 3) 数组

array([[1, 3, 5],
[7, 9, 1],
[3, 5, 7]],
[[2, 4, 6],
[8, 0, 2],
[4, 6, 8]])

使得该数组的每个矩阵都包含第一个矩阵中每个元组的相应索引的所有元素。有没有办法做到这一点,无论是使用 NumPy 还是使用 ML 库的预处理工具?从某种意义上说,这种操作相当于将图像的通道“解耦”在两个单独的矩阵中。

【问题讨论】:

  • 交换或转置。阅读文档并进行实验。

标签: python arrays numpy pytorch


【解决方案1】:

根据用户 hpaulj 的建议,如果 A 是原始数组,则执行此操作所需的操作是 np.swapaxes(A, 0, 2).transpose(0,2,1)

documentation 中所述,swapaxes 互换了多维数组的两个轴。这使得子矩阵相对于我们想要的形式处于转置形式,因此我们应该以这样一种方式转置数组,以保持包含子矩阵的数组的顺序并转置子矩阵本身。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-10
    • 1970-01-01
    • 2017-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多