Найти десятилетия со средним и минимальным средним из массива - PullRequest
0 голосов
/ 30 марта 2020

У меня есть массив длины (324), и я делю его на десятилетия следующим образом:

Array = np.random.randint(1,10,324)
D1 = Array[:60]
D2 = Array[61:120]
D3 = Array[121:180]

Затем я нахожу среднее значение каждого десятилетия следующим образом: полный массив:

m_D1 = np.mean(D1) = 5
m_D2 = np.mean(D2) = 3
m_D3 = np.mean(D3) = 8 
m_array = np.mean(Array) = 6

Теперь вопрос 1. Как программно найти десятилетие со средним значением, ближайшим к среднему значению всего массива? 2. Как мне найти десятилетие с самым низким средним? в случае выше:

m_D1 is the closet to m_array and m_D2 is the decade with the lowest mean.

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 30 марта 2020
  1. Ближайшее к целому среднему значению массива можно получить, взяв абсолютное значение разницы между каждым из средних значений десятилетия и общего среднего значения и посмотрев наименьшее - этого можно достичь с помощью abs().

  2. Минимальное среднее можно получить с помощью функции min(), чтобы найти минимальное среднее значение каждого десятилетия.

Если вы хотите чтобы сохранить связь с реальными десятилетиями для справки, вы можете сделать это, сохранив средние значения в словаре и используя числа десятилетий в качестве ключей, чтобы была связь между числом десятилетий и средним значением, и затем вы можете итеративно определить ваши ответы при сохранении ссылки на десятилетие.

0 голосов
/ 30 марта 2020
Array = np.random.randint(1,10,324)
D1 = Array[:60]
D2 = Array[61:120]
D3 = Array[121:180]
decades_mean = np.array([np.mean(D1), np.mean(D2), np.mean(D3)])
array_mean = np.mean(Array)
closest_mean = decades_mean[np.argmin(np.abs(decades_mean - array_mean))] # for Q1
lowest_mean = min(decades_mean) # for Q2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...