NumPy strings.index()
The numpy.strings.index() function searches for a substring within a given string or an array of strings.
It works similarly to find(), but instead of returning -1 when the substring is not found, it raises a ValueError.
Syntax
numpy.strings.index(a, sub, start=0, end=None)
Parameters
| Parameter | Type | Description |
|---|---|---|
a | array-like (StringDType, bytes_, or str_ dtype) | The input string or array of strings to search within. |
sub | array-like (StringDType, bytes_, or str_ dtype) | The substring to find within a. |
start | array_like (integer), optional | Starting position of the search. Defaults to 0. |
end | array_like (integer), optional | Ending position of the search. Defaults to searching the entire string. |
Return Value
Returns an array of integers indicating the index of the first occurrence of the substring in each string. If the substring is not found, it raises a ValueError.
Examples
1. Finding the Index of a Substring
In this example, we find the position of a substring within a given string.
import numpy as np
# Define a string
word = np.array("apple")
# Find the index of the substring "p"
result = np.strings.index(word, "p")
# Print the result
print("Index of 'p' in 'apple':", result)
Output:
Index of 'p' in 'apple': 1

2. Finding a Substring in an Array of Strings
We use strings.index() to find the position of a substring in multiple words.
import numpy as np
# Define an array of words
words = np.array(["apple", "banana", "cherry"])
# Find the index of the substring "a" in each word
result = np.strings.index(words, "a")
# Print the results
print("Index of 'a' in each word:", result)
Output:

Since the string 'cherry' does not contain the search string 'a', the index() method throws ValueError.
3. Using Start and End Parameters
Specifying the start and end position to refine the search range.
import numpy as np
# Define a string
word = np.array("banana")
# Find the index of 'a' after the first occurrence
result = np.strings.index(word, "a", start=2)
# Print the result
print("Index of 'a' after position 2 in 'banana':", result)
Output:
Index of 'a' after position 2 in 'banana': 3

4. Handling a Missing Substring
When the substring is not found, numpy.strings.index() raises a ValueError.
import numpy as np
# Define a string
word = np.array("cherry")
try:
# Attempt to find a non-existent substring
result = np.strings.index(word, "z")
print("Index of 'z' in 'cherry':", result)
except ValueError:
print("Substring 'z' not found in 'cherry'.")
Output:
Substring 'z' not found in 'cherry'.

If the substring is not found, a ValueError is raised, which should be handled in a try-except block.
