我使用python,我有一個非常基本的問題。 我有1000個元素的數組。我想選擇這個數組的100個位置。 我想要做這樣的事情從列表中選擇數組
selected_value=array[i for i in position_to_select]
我怎樣才能使這項工作?
我使用python,我有一個非常基本的問題。 我有1000個元素的數組。我想選擇這個數組的100個位置。 我想要做這樣的事情從列表中選擇數組
selected_value=array[i for i in position_to_select]
我怎樣才能使這項工作?
假設你有名單arr
,要從其在位置0,4選擇元素,2:
>>> arr = [1, 2, 3, 4, 5, 6, 7]
>>> selected = [arr[i] for i in [0, 4, 2]]
>>> selected
[1, 5, 3]
>>>
我認爲,與原有的代碼示例的主要區別在於使用列表arr[i]
理解。列表理解創建一個新列表。它不用於索引現有列表。
>>> selected_value = [array[i] for i in position_to_select]
如果使用大型數組經常加班,看看numpy:
import numpy as np
arr = np.array([3., 4., 3., 7., 3., 6., 9., 1., 2., 5.])
position_to_select = [1, 3, 6]
selected_value = arr[position_to_select]
# array([ 4., 7., 9.])
謝謝!如果我想選擇所有不屬於列表的元素,該怎麼辦?我試着用selected = [arr [i]因爲我不在[0,4,2]],但是我得到了一個無效的語法錯誤。 – Brian 2012-02-18 16:29:34
@Matteo:最有效的方法是預先計算索引列表,然後使用相同的代碼。事先計算可以是任意的,例如不滿足某個謂詞的索引 – 2012-02-19 10:54:37