Why is my signal attenuated after applying a HighPass-filter? I am new to DSP, but I've been attempting apply a butterworth high-pass filter on a 1D array (Values peeking at 300~) to eliminate any noise, yet when applying a high pass filter, I'm ending up with an attenuated result? 

So far I have attempted to approach the problem with different specs, but it seems that my lack of experience in Signal Processing is holding me back. 




def butter_highpass(highcut, fs, order):
    nyq = 0.5 * fs
    high = highcut / nyq
    b, a = butter(order, high, btype="highpass")
    return b, a

fs      = 30.0            #Sampling rate Hz
b, a = butter_highpass(5, fs, 5)
filtered      = signal.lfilter(b, a, data)


Result:


My Goal : Reduce all noise to 0 while retaining the peak values.

Any suggestions or recommendations are more than welcome
The correct answer to this question has been provided by: Stanley Pawlukiewicz but has since been removed. 


  Your filter attenuates the high frequencies of the total timeseries,
  signal and noise.
  
  Your results are expected.
  
  You really can’t perfectly remove just the noise.
  
  When the noise and signal overlap in time and frequency, you have to
  make a tradeoff between attenuating signal and attenuating noise, by
  adjusting the cutoff frequency.