import re

TEXT_SAMPLE = "30feet is about 10metre but that's 1 rough estimate several numbers are like 2, 137, and 40 or something big numbers are like 2,137,040 or something"

def extract_numbers(text):
  return list(map(float, [x.replace(',','') for x in re.findall(r'\b\d{1,3}(?:,\d{3})*(?:\.\d+)?(?!\d)', text)]))

print(extract_numbers(TEXT_SAMPLE))