2012-02-17 26 views
0

私はPythonを使用しています。私は本当に基本的な質問があります。 I 1000個の要素の配列。この配列の100の位置を選択したいと思います。 私はこの作業を行うことができますどのように リストから配列を選択する

 selected_value=array[i for i in position_to_select] 

ような何かをしたいですか?

答えて

6

は、あなたが位置0に要素を選択したいからリストarr、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]を使用していることを考えます理解。リストの理解は新しいリストを作成します。既存のリストの索引作成には使用されません。

+0

感謝を!リストに属していない要素をすべて選択したい場合はどうすればよいですか?私は[0、4、2]ではないのにselected = [arr [i]で試しましたが、無効な構文エラーがあります。 – Brian

+0

@Matteo:最も効果的な方法は、インデックスのリストを事前に計算してから、同じコードを使用することです。事前に、ある述語を満たさない索引などの任意の計算が可能です –

3
>>> selected_value = [array[i] for i in position_to_select] 
1

あなたは大きな配列で頻繁に作業する場合、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.]) 
関連する問題