Преобразование массива приращений времени в массив моментов - PullRequest
1 голос
/ 26 января 2020

Если у меня есть массив приращений времени, например:

intervals = np.random.normal(loc=1,scale=0.1,size=100)

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

Sum=0.
instants=[]
for k in range(len(intervals)):
    Sum+=intervals[k]
    instants.append(Sum)

instants=np.array(instants)

Итак, я только что переключился с массива dt(i) на массив t(i).

Но обычно python предлагает элегантные альтернативы использованию циклов for. Есть ли лучший способ сделать это?

1 Ответ

1 голос
/ 26 января 2020

То, что вы здесь описываете, является совокупной суммой. Вы можете рассчитать это с помощью .cumsum() [numpy -doc] :

intervals<b>.cumsum()</b>

Например:

>>> intervals
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> intervals.cumsum()
array([ 0,  1,  3,  6, 10, 15, 21, 28, 36, 45])
...