首页 > 解决方案 > 将numpy数组从(1000,1000,3)重塑为(3,1000,1000)并返回

问题描述

我有一个形状为 (3,1000,1000) 的 numpy 数组,我不得不将其更改为 (1000,1000,3) 以进行一些图像处理。我现在需要重塑回 (3,1000,1000) 保留原始位置,但我无法弄清楚如何去做。这是一个例子:

import numpy as np

arr1 = np.array([1] * 1000000).reshape(1000,1000)
arr2 = np.array([2] * 1000000).reshape(1000,1000)
arr3 = np.array([3] * 1000000).reshape(1000,1000)

arr_list = list((arr1,arr2,arr3))
arr = np.array(arr_list).reshape(3,1000,1000)
arr_d = np.dstack(arr_list)

arr是阵列的原始形状,而arr_d是图像处理所需的形状。本质上, 中的每个原始二维矩阵arr都是 中的一列arr_d。现在我需要从arr_dto返回arr,保留这些值。

标签: pythonarrays

解决方案


我相信这就像转置 arr_d 一样简单

>>> np.array_equal(arr, arr_d.T)
True

推荐阅读