【发布时间】:2012-02-17 13:58:58
【问题描述】:
我使用 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.])
【讨论】: