As noted in the comments, your numbers are far from random.
I would first remove the decimal point since it appears that all of your numbers can be described with two digits after the decimal point. So simply multiply all numbers by 100 when compressing, and divide by 100 when decompressing.
Second, I would delta-code the numbers by subtracting the last number from each. The first number is unchanged. The reconstruction is obvious. So then you end up with:
22419, 138, 52, -335, -54, -9, 103, 31742, -160, 118, 30, -20399,
202, 231, -18405, 329, -146, -233, -10115, 125, -145, -143
to code. Now we're getting somewhere. We have typically small deltas, with an occasional big jump. Then use variable-length integers to code them. A histogram of the deltas would then be useful to construct that code well. A simple example would be 7-bits per bytes, with the high bit being a one to indicate the end of the integer. A more complex scheme at the bit level might be more optimal, depending on the probability distribution.