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)
有更快的方法吗?
您可以将所有的暗淡向前推,将单调暗淡/新轴引入为最后一个暗淡来创建一个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)