The fix to this was to use .replace
in the following way:
fig, ax = plt.subplots()
ax.plot([1,2,3], [-50, 50, 100])
# Divide y tick labels by 10
ax.set_yticklabels([int(float(label.get_text().replace('−', '-'))/10) for label in ax.get_yticklabels()])
The reason behind this is that matplotlib returns a different ASCII character in .get_text() than the usual '-' which is recognised by the native float()
function.