2017-08-24 101 views
0

有没有更快的方法从numpy.linspace获取每个奇数元素?什么我目前做的是很明显的:numpy linspace - 只保留奇数元素

x = np.linspace(start,stop,n)[1::2] 

作为一个明显的例子:

>>> np.linspace(0,10,21)[1::2] 
array([ 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5]) 
+2

你可以做“数学”,而不是去为'np.linspace(0.5,9.5,10)'假设你不需要完整的东西为好。 –

+0

@ Ev.Kounis True。有时最简单的解决方案很难看出:D但是,我想我需要某种条件来区分偶数和奇数'n'。 –

+1

@ThomasKuehn无论“n”是奇数还是偶数,“linspace”都会创建一个_arithmetic progression_。从该进程中选择每个第k个元素将创建另一个可能已经由'linspace'生成的进程。所以,问题是如何将_k_与'start','stop'和'n'联系起来。 –

回答

0

以下是您所使用的变量的方式映射功能。为相同的结果保留相同的变量值。希望这可以帮助!

x = np.linspace(start,stop,n)[1::2] 

x = np.linspace(start+stop/(n-1),stop-stop/(n-1), (n-1)/2) 
+1

像预期的那样工作,确实加速了我的代码。本应该能够解决这个问题,但是感谢您的帮助。 –