在特定轴上调整大小和插入 ndarray

Resize and interpolate ndarray on specific axis

假设我有这样的 3-d numpy 数组:

arr = np.random.randn(14,10,10)

我需要将其调整为 (14, 20, 20) 的形状。这意味着第一个维度使用插值方法分别从 (10, 10) 调整到 (20, 20)

我该怎么做?

对于这类任务,一个方便的工具是 scipy.ndimage.interpolation.zoom

这将是 resizing 数组并使用 spline interpolation 对其进行插值。为了使用它,您需要提供一个缩放因子,在本例中应该是 [1,2,2]。这将指定您想要沿最后两个轴的缩放系数 2

from scipy.ndimage import interpolation

arr = np.random.randn(14,10,10)
new_arr = interpolation.zoom(arr,[1,2,2])

print(new_arr.shape)
# (14, 20, 20)