@sh.add_function(dsp, outputs=['final_drive_ratio_vector'])
def calculate_final_drive_ratio_vector(final_drive_ratios, gears):
"""
Calculates the final drive ratio vector [-].
:param final_drive_ratios:
Final drive ratios [-].
:type final_drive_ratios: dict[int, float | int]
:param gears:
Gear vector [-].
:type gears: numpy.array
:return:
Final drive ratio vector [-].
:rtype: numpy.array
"""
fdr0 = final_drive_ratios[min(final_drive_ratios)]
d = collections.defaultdict(lambda: fdr0)
d.update(final_drive_ratios)
return np.vectorize(lambda k: d[k])(gears)