私はPythonを使用しています。私は本当に基本的な質問があります。 I 1000個の要素の配列。この配列の100の位置を選択したいと思います。 私はこの作業を行うことができますどのように リストから配列を選択する
selected_value=array[i for i in position_to_select]
ような何かをしたいですか?
私はPythonを使用しています。私は本当に基本的な質問があります。 I 1000個の要素の配列。この配列の100の位置を選択したいと思います。 私はこの作業を行うことができますどのように リストから配列を選択する
selected_value=array[i for i in position_to_select]
ような何かをしたいですか?
は、あなたが位置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]
を使用していることを考えます理解。リストの理解は新しいリストを作成します。既存のリストの索引作成には使用されません。
>>> 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.])
感謝を!リストに属していない要素をすべて選択したい場合はどうすればよいですか?私は[0、4、2]ではないのにselected = [arr [i]で試しましたが、無効な構文エラーがあります。 – Brian
@Matteo:最も効果的な方法は、インデックスのリストを事前に計算してから、同じコードを使用することです。事前に、ある述語を満たさない索引などの任意の計算が可能です –