我想(均匀地)减少每个方向上的 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)
关于python - 在 Numpy 中以编程方式沿其所有轴裁剪数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51752355/