Skip to main content
 首页 » 编程设计

python之在 Numpy 中以编程方式沿其所有轴裁剪数组

2025年05月04日12rubylouvre

我想(均匀地)减少每个方向上的 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)] 

但它不起作用。

请您参考如下方法:

可以出示相关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)