NumPy strings.find()

The numpy.strings.find() function searches for a substring within each element of an input string array and returns the lowest index where the substring is found. If the substring is not found, it returns -1. This function is useful for locating specific text within a collection of strings.

Syntax

</>
Copy
numpy.strings.find(a, sub, start=0, end=None)

Parameters

ParameterTypeDescription
aarray_likeInput string array where the search is performed.
subarray_likeThe substring to search for within each element.
startarray_like, optionalThe starting index from where to begin searching. Default is 0.
endarray_like, optionalThe ending index (exclusive) where the search should stop. Default is the length of the string.

Return Value

Returns an array of integers representing the lowest index where the substring is found in each input string. If the substring is not found, it returns -1.


Examples

1. Finding Substring in an Array of Strings

Here, we search for a substring in a list of fruit names.

</>
Copy
import numpy as np

# Define an array of strings
fruits = np.array(["apple", "banana", "cherry", "blueberry"])

# Search for the substring 'an' in each string
result = np.strings.find(fruits, "an")

# Print the results
print("Index positions of 'an':", result)

Output:

Index positions of 'an': [-1  1 -1 -1]

The substring 'an' is found at index 1 in "banana". In other words, it starts from the second character. The other words do not contain 'an', so the result is -1 for them.

2. Specifying a Start Index

We define a starting index to begin searching for the substring.

</>
Copy
import numpy as np

# Define an array of strings
fruits = np.array(["apple", "banana", "cherry", "blueberry"])

# Search for 'e' starting from index 3
result = np.strings.find(fruits, "e", start=3)

# Print the results
print("Index positions of 'e' from index 3:", result)

Output:

Index positions of 'e' from index 3: [-1 -1 4 6]

The search starts at index 3 for each word. For example, in "cherry", "e" is found at index 4. If "e" appears before index 3, it is ignored.

3. Specifying a Start and End Index

Here, we limit the search within a specific range.

</>
Copy
import numpy as np

# Define an array of strings
fruits = np.array(["apple", "banana", "cherry", "blueberry"])

# Search for 'r' within a limited index range (2 to 5)
result = np.strings.find(fruits, "r", start=2, end=5)

# Print the results
print("Index positions of 'r' from index 2 to 5:", result)

Output:

Index positions of 'r' from index 2 to 5: [-1 -1 3 -1]

The letter 'r' is found in "cherry" at index 3, which is within the specified range (2 to 5). For other words, it either appears outside the range or does not exist.

4. Searching for a Non-Existent Substring

If the substring does not exist in the given string, the function returns -1.

</>
Copy
import numpy as np

# Define an array of strings
fruits = np.array(["apple", "banana", "cherry", "blueberry"])

# Search for a substring that does not exist
result = np.strings.find(fruits, "z")

# Print the results
print("Index positions of 'z':", result)

Output:

Index positions of 'z': [-1 -1 -1 -1]

Since 'z' does not appear in any of the words, the function returns -1 for all elements.

Additional Reading

  1. Python str.find()