larray.Array.growth_rate

Array.growth_rate(axis=-1, d=1, label='upper') Array[source]

Compute the growth along a given axis.

Roughly equivalent to a.diff(axis, d, label) / a[axis.i[:-d]]

Parameters:
axisint, str, Group or Axis, optional

Axis or group along which the difference is taken. Defaults to the last axis.

dint, optional

Periods to shift for forming difference. Defaults to 1.

label{‘lower’, ‘upper’}, optional

The new labels in axis will have the labels of either the array being subtracted (‘lower’) or the array it is subtracted from (‘upper’). Defaults to ‘upper’.

Returns:
Array

Examples

>>> data = [[4, 5, 4, 6, 9], [2, 4, 3, 0, 0]]
>>> a = Array(data, "sex=F,M; year=2017..2021")
>>> a
sex\year  2017  2018  2019  2020  2021
       F     4     5     4     6     9
       M     2     4     3     0     0
>>> a.growth_rate()
sex\year  2018   2019  2020  2021
       F  0.25   -0.2   0.5   0.5
       M   1.0  -0.25  -1.0   0.0
>>> a.growth_rate(label='lower')
sex\year  2017   2018  2019  2020
       F  0.25   -0.2   0.5   0.5
       M   1.0  -0.25  -1.0   0.0
>>> a.growth_rate(d=2)
sex\year  2019  2020  2021
       F   0.0   0.2  1.25
       M   0.5  -1.0  -1.0

It works on any axis, not just time-based axes

>>> a.growth_rate('sex')
sex\year  2017  2018   2019  2020  2021
       M  -0.5  -0.2  -0.25  -1.0  -1.0

Or part of axes

>>> a.growth_rate(a.year[2017:])
sex\year  2018   2019  2020  2021
       F  0.25   -0.2   0.5   0.5
       M   1.0  -0.25  -1.0   0.0