我有一个任意长度的数组,我想选择它的N个元素,均匀地间隔开(大约,N可能是偶数,数组长度可能是素数等),包括第一个arr[0]元素和最后一个arr[len-1]元素.
例:
>>> arr = np.arange(17)
>>> arr
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16])
Run Code Online (Sandbox Code Playgroud)
然后我想创建一个像下面这样的函数numElems来在数组中均匀地间隔开,它必须包含第一个和最后一个元素:
GetSpacedElements(numElems = 4)
>>> returns 0, 5, 11, 16
Run Code Online (Sandbox Code Playgroud)
这有意义吗?
我试过arr[0:len:numElems](即使用数组start:stop:skip符号)和一些细微的变化,但我没有得到我在这里寻找的东西:
>>> arr[0:len:numElems]
array([ 0, 4, 8, 12, 16])
Run Code Online (Sandbox Code Playgroud)
要么
>>> arr[0:len:numElems+1]
array([ 0, 5, 10, 15])
Run Code Online (Sandbox Code Playgroud)
我并不完全关心中间元素是什么,只要它们间隔均匀,偏离指数1即可.但是获得正确数量的元素(包括索引零和最后一个索引)是至关重要的.
希望有人能帮我找到快速的单行程,谢谢!