如何从 x-n 元素开始切片 numpy 数组?

How to slice numpy array starting from x-n elements?

如果我有一个 numpy 数组:

arr = np.array([1,2,3,4,5,6,7,8,9,10])
x = 3 # index
n = 5
m = 2

有没有办法得到这样的输出?

output: np.array([1,2,3,4,5,6])

我们从索引 x=3 的 4 开始。输出由所述索引之前的 n=5 个元素组成,但不环绕(在本例中不超过 1)。并且在所述索引之后还包含 m=2 个元素。

谢谢。

你可以使用这个:

import numpy as np
arr = np.array([1,2,3,4,5,6,7,8,9,10])
x = 3
n = 5
m = 2
arr[max(0, x-n):x+m+1]
# array([1, 2, 3, 4, 5, 6])