通过在python中使用元组列表作为索引来获取numpy数组中的元素

时间:2015-08-06 23:33:00

标签: python arrays list numpy tuples

我有一个元组列表(整数),循环很长。我也有一个numpy数组。我想获得列表中每个元组给出的元素,而不必遍历列表。像这样:

mySum = np.sum(myArray(myList))

当然不起作用。有没有办法让我做到这一点? 该列表如下所示:myList = [(1,2,2),(0,0,2),...,(100,122,200)]

myArray是一个3d numpy数组。

1 个答案:

答案 0 :(得分:1)

您可以提取每个维度的索引,然后对numpy数组进行切片(假设myArray是一个包含三维的数组):

# Define the indices
myList = [(1,2,2), (0,0,2), (100,122,200), (3, 4, 5)]
# Define the array (just random numbers)
myArray = np.random.uniform(size=(101, 201, 201))
# Extract the indices
a, b, c = np.transpose(myList)
# Slice the numpy array and sum
mySum = np.sum(myArray[a, b, c])