我正在尝试填充4D numpy数组。该数组只是3D数组的集合,例如,其大小可以解释为(样本,高度,宽度,深度)。填充前的数组大小为(1682160、21、200、3)。我想将此阵列中的行每边填充10个像素,因此我最终的填充阵列大小将为(1682160、21、220、3)。我目前以这种方式使用numpy pad函数:
matrix = np.pad(matrix, ((0, 0), (0, 0), (10, 10), (0,0)), mode='reflect')
我将填充数组matrix
重写为同一变量,因为它是float16数据类型,大小约为40 GB。写入新矩阵会导致内存错误。以上命令的执行时间大约为700秒。
我想知道是否有一种更快的方法(可能是矢量化的)在python中实现呢?