суммировать через указанные c значений в массиве - PullRequest
0 голосов
/ 25 мая 2020

У меня есть массив точек данных, например:

[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

и я необходимо выполнить следующую сумму для значений:

enter image description here

Однако проблема в том, что мне нужно выполнить эту сумму для каждого значения> i. Например, используя последние 3 значения в наборе, сумма будет:

enter image description here

и так далее до 10. Если я запустил что-то вроде:

import numpy as np

x = np.array([10, 9, 8, 7, 6, 5, 4, 3, 2, 1])
alpha = 1/np.log(2) 

for i in x:
    y = sum(x**(alpha)*np.log(x))
print (y)

Он возвращает одно значение y = 247.7827060452275, тогда как мне нужен массив значений. Я думаю, что мне нужно изменить порядок данных, чтобы достичь того, что я хочу, но у меня проблемы с визуализацией проблемы (надеюсь, я правильно ее объяснил) в целом, поэтому любые предложения будут очень признательны.

1 Ответ

1 голос
/ 25 мая 2020

Следующее вычисляет все частичные суммы общей суммы в вашей формуле

import numpy as np

# Generate numpy array [1, 10]
x = np.arange(1, 11)
alpha = 1 / np.log(2)
# Compute parts of the sum
parts = x ** alpha * np.log(x)
# Compute all partial sums
part_sums = np.cumsum(parts)
print(part_sums)

Вы действительно не выполняете никаких явных l oop или не numpy операций (например, sum() ) Вот. numpy позаботится обо всех ваших потребностях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...