python / NumPy : How to extract interior of any dimension of numpy array?

标签 python arrays numpy numpy-slicing

假设我有一个 numpy 数组 A,它可以是任意维度 len(A.shape) 可以是 1,2,3,..etc。和相应的数组 crop which len(crop) = len(A.shape) 我想使用 crop 提取 A 的内部值。这是二维数组的示例。

    A = np.random.rand(30).reshape([5,6])
    crop = np.array([1,2])

想要的输出:

    A[crop[0]:-crop[0], crop[1]:-crop[1])

假设 crop 的值相对于 A 的大小是合理的。我如何对数组 A 的任何维度执行此操作?

最佳答案

这是 slice notation 的一种方式-

A[tuple([slice(i,-i,None) for i in crop])]

或者用简写np.s_ -

A[tuple([np.s_[i:-i] for i in crop])]

如果每个维度的起始索引和结束索引都已给出,我们可以执行类似 Slicing NumPy array given start and end indices for generic dimensions 中所示的操作.

关于 python / NumPy : How to extract interior of any dimension of numpy array?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58025347/

相关文章:

python - 在python中沿水平方向物理拉伸(stretch)图

C - 将 float 存储到 char 数组并反转

javascript - 从 Controller Angular 传递数组

c - Xcode 似乎无法在 C 中使用数组

python - NumPy 数组的反向堆叠操作

python - 在 Python 中重新编码类似于 R ifelse 的变量

python - 如何在 Tkinter 中使用 "native"GUI 外观?

python - 使用什么方法来确定用户是否连接到 facebook

python - 我安装了一个 Python 程序,但找不到它的所有源代码

Python-列表与数组形状问题