2016-05-01 38 views

回答

2

如果只是024,您可以使用operator.itemgetter()

from operator import itemgetter 

array1 = itemgetter(0, 2, 4)(array) 

這將是一個元組。如果它必須是一個列表,將其轉換:

array1 = list(itemgetter(0, 2, 4)(array)) 

如果該點是得到偶數指數,使用切片:

array1 = array[::2] 

無論你正在尋找,你可以使用一個list comprehension

array1 = [array[i] for i in (0, 2, 4)] 

array1 = [array[i] for i in xrange(0, len(array), 2)] 
+0

非常感謝〜如果我想設置「step」,即採摘間隔,我該怎麼辦?例如,我想選取0,3,6個指數或0,4,8〜 – Echo0831

+0

@ Echo0831的元素,你可以通過在xrange(start,len(array())中寫入array1 = [array [i] ),step)]',其中start應該是第一個元素的索引,step是步長。或者你可以看到我的答案。 – kanayamalakar

+0

@ Echo0831:當我說'array [:: 2]'時,這意味着'array'中的所有項目從一端到另一端以'2'步驟。因此,您可以將「2」更改爲您想要的任何步驟。在'array1 = [array [i] for i in xrange(0,len(array),2)]'中,我說從第一個元素的索引'0'到索引長度的索引array - 1,最後一個元素,步長爲2。因此,您可以將'2'更改爲您想要的任何步驟。 – zondo

0

你可以嘗試這樣的事情。在python中,列表的第n項索引爲(n-1)。假設你想要的第一個元素是2,恰好是array的元素1。只需將第一個元素索引保存在變量中。將其附加到新列表array1並將索引增加2.繼續執行此操作,直到列表array用盡。

from numpy import* 
array=[1,2,3,4,5,6] 
array1=[] 
term=1 
while term<len(array): # if the array length is 6 then it will have upto element 5. 
    array1.append(array[term]) 
    term=term+2   # 2 is the gap between elements. You can replace it with your required step size. 
+0

Got you!有道理〜 – Echo0831