Изменение размера и интерполяция ndarray на определенной оси - PullRequest
0 голосов
/ 22 марта 2019

Предположим, у меня есть 3-й массив Numpy, как это:

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

Мне нужно изменить его размер до (14, 20, 20). Это означает, что первое измерение отдельно изменяется с (10, 10) до (20, 20) с методом интерполяции.

Как я мог это сделать?

1 Ответ

1 голос
/ 22 марта 2019

Для такого рода задач удобным инструментом является scipy.ndimage.interpolation.zoom

Это будет resizing массив и его интерполяция с использованием сплайн-интерполяции . Для его использования необходимо указать коэффициент масштабирования, который в этом случае должен составлять [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)
...