2017-08-24 56 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

像預期的那樣工作,確實加速了我的代碼。本應該能夠解決這個問題,但是感謝您的幫助。 –