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

标签 python numpy

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

相关文章:

Python 使用 pexpect 通过 scp 发送文件

python - 字典中的递归查找

Python - 使用 Numpy、ValueError 生成随机 dna 序列

python - 使用 NumPy 计算平均分数时出错 : 'ufunc add' did not contain a loop

python - 来自 scipy.special 的 fadeeva 函数的二阶导数

python - 带有对数轴的 Pandas 直方图

python - 如何计算两列中唯一字符串的数量?

python - 将 numpy 数组写入文件字节顺序问题?

python - 如何从字符串中删除最后 n 个字符?

使用 numpy 中的加载文本导入 cdv 时出现 ' b ' 的 Python 问题