У меня есть уравнение, и меня попросили найти среднее значение x с 2010 по 2015 год. Я начал цикл, чтобы сначала получить значения за 2010-2015 годы, но я застрял в том, как получить среднее значение этих значений. Ниже то, что у меня есть на данный момент:

a = -22562.8
b = 11.24
i = 2010
while i <=2015:
    sum_estimated_riders = (a + (i * b)) * 100000
    print(sum_estimated_riders)
    i = i + 1 
0
rb1705 26 Сен 2021 в 01:31

2 ответа

Лучший ответ

Вы каждый раз перезаписываете sum_estimated_riders. Вместо этого инициализируйте его значением 0 перед циклом и добавьте к нему внутри цикла. Затем разделите на количество итераций.

a = -22562.8
b = 11.24
i = 2010
sum_estimated_riders = 0
num_years = 0
while i <=2015:
    sum_estimated_riders += (a + (i * b)) * 100000
    num_years += 1
    i = i + 1 

mean_estimated_riders = sum_estimated_riders / num_years
print(mean_estimated_riders)

Как вариант, вы можете создать список из estimated_riders на каждый год. Затем используйте sum() для вычисления суммы и деления на длину списка.

estimated_riders = []
while i <= 2015:
    estimated_riders.append((a + (i * b)) * 100000)

mean_estimated_riders = sum(estimated_riders) / len(estimated_riders)

Или, как понимание списка:

estimated_riders = [(a + (i * b)) * 100000 for i in range(2010, 2016)] # 2016 because range() excludes the end
mean_estimated_riders = sum(estimated_riders) / len(estimated_riders)
0
Pranav Hosangadi 25 Сен 2021 в 22:35

Вы можете использовать numpy.mean () для этого. Создайте список, добавьте его с каждым значением, а затем усредните его.

import numpy as np


estimated_riders = []
a = -22562.8
b = 11.24
i = 2010
while i <=2015:
    sum_estimated_riders = (a + (i * b)) * 100000
    estimated_rides.append(sum_estimated_riders)
    i = i + 1 

avg = np.mean(estimated_riders)
print(avg)
2
Sidney 25 Сен 2021 в 22:42