从列表中选择数组

时间:2012-02-17 13:58:58

标签: python arrays list

我使用python,我有一个非常基本的问题。 我是1000个元素的数组。我想选择这个阵列的100个位置。 我想做像

这样的事情
     selected_value=array[i for i in position_to_select]

我该如何做到这一点?

3 个答案:

答案 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.])