<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def phase_correct_first(spec, freq, k):
 """ First order phase correction. Parameters spec : float array The spectrum to be corrected. freq : float array The frequency axis. k : float The slope of the phase correction as a function of frequency. Returns ------- The phase-corrected spectrum. Notes ----- [Keeler2005] Keeler, J (2005). Understanding NMR Spectroscopy, 2nd edition. Wiley. Page 88 """

    c_factor = np.exp(-1j * k * freq)
    c_factor = c_factor.reshape((len(spec.shape) -1) * (1,) + c_factor.shape)
    return spec * c_factor