Я хочу нарисовать диаграмму в своем приложении Python, но исходный массив numpy слишком велик для этого (около 1 000 000+). Я хочу взять среднее значение для соседних элементов. Первой идеей было сделать это в стиле C++:
step = 19000 # every 19 seconds (for example) make new point with neam value
dt = <ordered array with time stamps>
value = <some random data that we want to draw>
index = dt - dt % step
cur = 0
res = []
while cur < len(index):
next = cur
while next < len(index) and index[next] == index[cur]:
next += 1
res.append(np.mean(value[cur:next]))
cur = next
но это решение работает очень медленно. Я попытался сделать так: это:
step = 19000 # every 19 seconds (for example) make new point with neam value
dt = <ordered array with time stamps>
value = <some random data that we want to draw>
index = dt - dt % step
data = np.arange(index[0], index[-1] + 1, step)
res = [value[index == i].mean() for i in data]
pass
Это решение медленнее, чем первое. Какое лучшее решение этой проблемы?