我有一个数字列表,我想将它们分成 N 个均匀间隔的数字,而第一个和最后一个数字必须在结果列表中,所有数字都应该是整数,所以我可以在最后两个差一点。
例如,我有一个 1-100 的范围,我想要三个数字的结果列表,所以它会是[1, 50, 100]
. 有没有python的方法来分割它们?或者什么可以是一个方程来获得增量?通过 (last-first)/N 获取增量将不起作用,因为它会导致更多数字。
我无法想出一个工作方程来获得增量,我所拥有的最好的是(last-first-2)/N-2
,但这无法对某些组合进行均匀拆分。
你可以这样做numpy.linspace()
:
import numpy as np
np.linspace(1, 100, 3, dtype=int)
输出:
array([ 1, 50, 100])
或者,如果您已经有一个整数列表,并且您想使用此方法从中进行采样:
nums = range(1,200,2) # odd numbers
[nums[i-1] for i in np.linspace(1, 100, 3, dtype=int)]
输出:
[1, 99, 199]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句