我有一个元组列表(整数),循环很长。我也有一个numpy数组。我想获得列表中每个元组给出的元素,而不必遍历列表。像这样:
mySum = np.sum(myArray(myList))
当然不起作用。有没有办法让我做到这一点?
该列表如下所示:myList = [(1,2,2),(0,0,2),...,(100,122,200)]
。
myArray
是一个3d numpy数组。
答案 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])