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)