Взятие максимальных значений из массива и помещение в массив одинакового размера с одинаковыми индексами - PullRequest
0 голосов
/ 17 апреля 2020

У меня есть массив скоростей ветра. Он имеет 100 значений.

wind=[2.3,3.4,4.5...]

et c. Я беру каждую партию из 10 (первые 10, следующие 10 и т. Д. c) и беру их максимум, используя:

wmax = np.maximum.reduceat(wind, np.r_[:wind.size:10])

Я также создаю пустой массив wind2 нулей того же размера, что и массив wind (100 индексов).

Каков наилучший способ заполнить wind2 значениями, полученными в wmax, но убедившись, что значения wmax заполняют ту же самую точную позицию индекса, где они были извлечены из wind?

1 Ответ

1 голос
/ 17 апреля 2020

Мы можем использовать np.repeat с повторяющимися длинами, такими же, как размеры окон для каждой группы . Мы сделаем go для упрощения маршрута с повторением всех с тем же размером окна и, наконец, срезанием, чтобы сделать его такой же длины, что и входные данные. Наконец, чтобы получить маскированный вывод , используйте np.where -

np.where(np.repeat(wmax, W)[:wind.size]==wind,wind,0)
...