我有一个二维的(w,h)np数组。我想制作一个值大于1的三维维,并沿三维复制它的值。我本来希望广播能做到,但不行,我就是这样做的
arr = np.expand_dims(arr, axis=2)
arr = np.concatenate((arr,arr,arr), axis=2)
有更快的方法吗?
最佳答案
您可以将所有的DIM向前推,引入一个单独的DIM/新轴作为最后一个DIM来创建一个3D
数组,然后使用np.repeat
沿该数组重复三次,就像这样。-
arr3D = np.repeat(arr[...,None],3,axis=2)
下面是另一种使用-
arr3D = np.tile(arr[...,None],3)