Python/Numpy: 如何提取numpy数组任意维度的内部?
Python/Numpy: How to extract interior of any dimension of numpy array?
假设我有一个 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])]
或者用 shorthand np.s_
-
A[tuple([np.s_[i:-i] for i in crop])]
如果每个维度都给出了开始和结束索引,我们可以像 中所示那样做。
假设我有一个 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])]
或者用 shorthand np.s_
-
A[tuple([np.s_[i:-i] for i in crop])]
如果每个维度都给出了开始和结束索引,我们可以像