我使用python,我有一个非常基本的问题。 我是1000个元素的数组。我想选择这个阵列的100个位置。 我想做像
这样的事情 selected_value=array[i for i in position_to_select]
我该如何做到这一点?
答案 0 :(得分:6)
假设您有列表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]
。列表理解会创建一个新列表。它不用于索引现有列表。
答案 1 :(得分:3)
>>> selected_value = [array[i] for i in position_to_select]
答案 2 :(得分: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.])