Я ищу метод векторизации Python и / или Numpy, чтобы исключить использование цикла for для следующего:
for i in list_range_values:
v[list_list_values[i]] += list_comp_values[i]
где:
list_range_values - это список целочисленных значений Python, например. [1, 3, 5], взятый из диапазона (0, R-1, 1)
list_comp_values - это список числовых значений Python, например. [0.7, 9.8, 1.2, 5, 10, 11.7, 6, 0.2] таким образом, что len (list_comp_values) = R
v представляет собой вектор numpy длины V, такой что R может быть <, =,>, чем V
list_list_values - это список списков Python (каждый список содержит различное количество целочисленных значений, например [[3, 6, 7], [5, 7, 11, 25, 99], [8, 45], [4, 7, 8], [0, 1], [21, 31, 41], [9, 11, 22, 33, 44], [17, 19]]) взяты из диапазона (0, V-1, 1 ) и с len (list_list_values) = R
Например.
for i in list_range_values (= [1, 3, 5]):
i=1: v[[5, 7, 11, 25, 99]] += list_comp_values[1] (= 9.8)
i=3: v[[4, 7, 8]] += list_comp_values[3] (= 5)
i=5: v[[21, 31, 41]] += list_comp_values[5] (= 11.7)
Есть ли метод, позволяющий исключить цикл for?
Cython, Scipy / Weave / Blitz и модуль C являются альтернативными решениями, но мы хотим сначала убедиться, есть ли ответ векторизации Numpy.