How to check if a signal is mainly composed of a few impulse peaks? I am working on a problem that produces different types signals, and I need to detect the peaks after low-pass filtering, then find_peaks from scipy. For example, the one below:

I am however faced with some signals that have an impulse shape, as in:

or,

Filtering such signals destroys the peaks' locations, and sometimes lead to merging two or more peaks into one. Thus, I am not able to extract the peaks correctly.
Is there a method to infer if the signal has impulses (a few to many spikes)? This would help me directly extract the peaks easily.
I highly appreciate any input.
You can use kurtosis as a measure of how 'peaky' your signal is. Or the flatness measure, which is the ratio of the geometric mean of the signal to its arithmetic mean. Any signal which is not relatively flat will have a flatness value near 0.
$$\text{Flatness} = \frac{\sqrt[N]{\prod_{n=0}^{N-1} x(n)}}{\frac{1}{N} \sum_{n=0}^{N-1} x(n)}$$