Нарезка последних размеров массива - PullRequest
0 голосов
/ 15 марта 2020

У меня есть функция ниже для обрезки N-мерного массива:

def Crop(array, array_shape, bounding_shape):
        start = tuple(map(lambda a, da: (a-da)//2, array_shape, bounding_shape))
        end = tuple(map(operator.add, start, bounding_shape))
        slices = tuple(map(slice, start, end))
        return array[slices]

a = np.random.randn(5, 5, 100,100)
# Crop to 
b = Crop(a, a.shape, [1, 1, 25,40]) #returns cropped array of size [1, 1, 25,40]

Как я могу переписать это, чтобы игнорировать первые два элемента массива и ограничивающую форму?

Для пример:

a = np.random.randn(5, 5, 100,100)
# Crop to 
b = Crop(a, a.shape, [25,40]) #returns cropped array of size [5, 5, 25,40]
...