我们需要编写一个函数,返回元素索引列表中数组的值之和。例如:数组(2 5 7 3)、索引列表(1 3)、答案(2+7=9)。我不知道如何按索引求和。解决了这个问题:
import numpy as np
arr = np.array(input('Введите значения массива: ').split()).astype(int)
indices = np.array(input('Введите индексы элементов в массиве: ').split()).astype(int)
result = 0
for i in indices:
result += arr[indices[i]]
print(result)
这很简单:
只有 Numpy 中的索引(与普通 Python 一样)以
0:更新:
但是,从列表的所有元素中减去一个数字的技巧将不再有效:
有可能是这样的:
为什么在 Numpy 中使用内置的“矢量化 ufuncs”更好:
如果我们改进问题中的算法:
错误是它
for i in indices已经返回值,而不是索引。所以作者indices返回值,在循环内部,indices取值是取自值本身,也就是索引。