Table of Contents
Many times we, face difficulties while working with string or string manipulations. So in this tutorial, we will how to extract numbers from a string in Python not only that we will 10 ways to extract numbers from a string using Python.

Let’s experiment with each method and see how to extract number from string in Python.
Method 1: Using Regular Expressions (re module)
Regular expressions or re is one of the most powerful packages of python its deals with all kinds of task-related strings and text.
import re
text = "Hello, my age is 25 and my GPA is 3.75"
numbers = re.findall(r'\d+\.\d+|\d+', text)
print(numbers)
Method 2: Using isdigit() method
Python isdigit() is a built-in string method that is used to check if a given string is a digit or not.
text = "Hello, my age is 25 and my GPA is 3.75"
numbers = [float(word) for word in text.split() if word.replace(".", "", 1).isdigit()]
print(numbers)
Method 3: Using a loop to check and extract numbers:
In this method, we will pure Python loop and condition statement to extract numbers.
text = "Hello, my age is 25 and my GPA is 3.75"
numbers = []
current_number = ""
for char in text:
if char.isdigit() or char == '.':
current_number += char
elif current_number:
numbers.append(float(current_number))
current_number = ""
if current_number:
numbers.append(float(current_number))
print(numbers)
You can also learn about how to Replace Space with Underscore in Python.
Method 4: Using a generator expression and itertools:
Python itertools is also a built-in package with many different tools.
import itertools
text = "Hello, my age is 25 and my GPA is 3.75"
numbers = [float(''.join(group)) for is_number, group in itertools.groupby(text, key=str.isdigit) if is_number]
print(numbers)
Method 5: Using a third-party library, NumPy:
Here we will use the numpy package that is used to deal with Python arrays.
import numpy as np
text = "Hello, my age is 25 and my GPA is 3.75"
numbers = [float(num) for num in np.fromstring(text, dtype=float, sep=" ")]
print(numbers)