我有一个3D数据数组,我想在前两个轴对称地填零。我正在尝试使用dask数组连接函数:http://dask.pydata.org/en/latest/array-stack.html但它只能处理一个轴,而我需要在两个维度中填充。
import dask.array as da
data = da.random.random((20, 30, 4), chunks=(1,1,2))
padding = da.zeros((10, 10, 4)), chunks=(1,1,2))
res = da.concatenate((padding, data, padding), axis=0)
这不起作用,因为axis需要两个参数才能在两个维度上正确连接。
我试图从numpy复制这个:
import numpy as np
data = np.random.random((20, 30, 4))
n_pad = 10
res = np.pad(data, ((n_pad, n_pad), (n_pad, n_pad), (0,0)), mode='constant', constant_values = 0)
返回预期的最终形状(40,50,4)。 应用程序是我需要对一些FFT的实验数据进行零填充,但是所需的零填充将数组形状从(101,101,1024)带到(1024,1024,1024),这对于复杂的值将是16 Gb,这是内存计算不足。我发现了这个: https://pypi.python.org/pypi/out-of-core-fft/1.0但不幸的是它只适用于1D阵列。