Leo*_*haw 2 python arrays numpy
我有一个维度数组 (3,120,100),我想将它转换为维度数组 (120,100,3)。我拥有的数组是
arr1 = np.ones((120,100), dtype = int)
arr2 = arr1*2
arr3 = arr1*3
arr = np.stack((arr1,arr2,arr3))
arr
Run Code Online (Sandbox Code Playgroud)
它包含三个 120x100 的 1、2 和 3 数组。当我对它使用 reshape 时,我得到 120x100 的 1、2 或 3 数组。
我想得到一个 120x100 的数组,其中每个元素都是 [1,2,3]
如果您想要一个包含 的大数组1,2并且3如您所描述的那样,user3483203 的答案将是值得推荐的选项。通常,如果您有一个具有形状的数组,(X, Y, Z)并且希望将其作为(Y, Z, X),则通常会使用np.transpose:
import numpy as np
arr = ... # Array with shape (3, 120, 100)
arr_reshaped = np.transpose(arr, (1, 2, 0))
print(arr_reshaped.shape)
# (120, 100, 3)
Run Code Online (Sandbox Code Playgroud)
编辑:问题的标题说,你想从重塑一个数组(X, Y, Z)来(Z, Y, X),但文字似乎暗示你想从重塑(X, Y, Z)到(Y, Z, X)。我遵循了文本,但对于标题中的文本,它只是np.transpose(arr, (2, 1, 0)).