如何将numpy数组值复制到更高的维度

use*_*528 10 python 3d numpy multidimensional-array numpy-ndarray

我在2d中有一个(w,h)np数组.我想制作一个值大于1的3d维度,并将其值沿第三维复制.我希望广播会这样做,但事实并非如此.这就是我在做的方式

arr = np.expand_dims(arr, axis=2)
arr = np.concatenate((arr,arr,arr), axis=2)
Run Code Online (Sandbox Code Playgroud)

有更快的方法吗?

lia*_*dee 7

另一种有效的方法:

x_train = np.stack((x_train,) * 3, axis=-1)


Div*_*kar 6

您可以所有的暗淡向前,将单调暗淡/新轴引入为最后一个暗淡来创建一个3D数组,然后使用沿着那个暗淡/新轴重复三遍np.repeat,就像这样-

arr3D = np.repeat(arr[...,None],3,axis=2)
Run Code Online (Sandbox Code Playgroud)

这是另一种使用np.tile-

arr3D = np.tile(arr[...,None],3)
Run Code Online (Sandbox Code Playgroud)