我想(均匀地)减小每个方向上的numpy数组(矩阵)的尺寸。下面的代码有效。
array = np.array([3, 2323, 212, 2321, 54])
padding = 1
array[padding:-padding]
输出:
[2323, 12, 2321]
但是我希望这可以通过另一种方式完成。我的数组将是50维的,我想将最后一行应用于数组的每个维,但是我不想写太多代码。
也许像
array[padding: -padding for i in range(50)]
但这不起作用。
答案 0 :(得分:6)
您可以直接产生相关的slice
;
array[array.ndim * [slice(1, -1)]]
例如,
In [31]: array = np.zeros((3, 4, 5, 6))
In [32]: array[array.ndim * [slice(1, -1)]].shape
Out[32]: (1, 2, 3, 4)