title: How can I find the FWHM of a peak in a noisy data set in python (numpy/scipy)?
body: <p>I am analyzing an image of two crossing lines (like a + sign) and I am extracting a line of pixels (an <code>nx1</code> numpy array) perpendicular to one of the lines. This gives me an array of floating point values (representing colors) that I can then plot. I am plotting the data with matplotlib and I get a bunch of noisy data between 180 and 200 with a distinct peak in the middle that spikes down to around 100.</p>
  
  <p>I need to find FWHM of this data. I figured I needed to filter the noise first, so I used a gaussian filter, which smoothed out my data, but its still not super flat at the top.</p>
  
  <ol>
  <li><p>I was wondering if there is a better way to filter the data. </p></li>
  <li><p>How can I find the FWHM of this data? </p></li>
  </ol>
  
  <p>I would like to only use numpy, scipy, and matplotlib if possible. </p>
  
  <p>Here is the original data:
  <img src="https://i.stack.imgur.com/bRjjd.png" alt="Original Data"></p>
  
  <p>Here is the filtered data:
  <img src="https://i.stack.imgur.com/JGRVs.png" alt="Filtered Data"></p>