Noise removal in discrete signal
A simple approach would be to implement a filter using scipy.signal.lfilter, where plenty of documentation exists in python on how to use that function.
To do this effectively you need to first define the signal bandwidth of interest relative to the sampling rate. As long as the sampling rate is sufficiently more than twice the bandwidth, there will be an opportunity for noise reduction. If the noise is truly random, and no knowledge of the signal (equally random) we cannot reduce noise that is occupying the same bandwidth if frequency and duration in time as the signal, but the filter described would be effective in rejecting out-of-band noise.