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 [float(x.replace(',','')) for x in re.findall(r'\b\d{1,3}(?:,\d{3})*(?:\.\d+)?(?!\d)', text)]

print(extract_numbers(TEXT_SAMPLE))