Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

NumPy char.index()로 문자열 배열에서 부분 문자열의 최하위 인덱스 찾기

Python NumPy의 numpy.char.index() 메서드를 사용하여 문자열 배열의 각 요소에서 특정 부분 문자열이 처음 나타나는 최하위 인덱스를 반환하는 방법을 설명합니다. 이 메서드는 정수 배열을 반환하며, 부분 문자열을 찾지 못하면 ValueError를 발생시킵니다.

주요 매개변수

  • arr: 입력 문자열 배열
  • sub: 검색할 부분 문자열
  • start (선택적): 검색 시작 인덱스 (슬라이스 표기법과 동일)
  • end (선택적): 검색 종료 인덱스 (슬라이스 표기법과 동일)

실행 예제

import numpy as np

# 1차원 문자열 배열 생성
arr = np.array(['KATIE', 'KATE', 'CRATE'])

print("Array...\n", arr)
print("\nArray datatype...\n", arr.dtype)
print("\nArray Dimensions...\n", arr.ndim)
print("\nOur Array Shape...\n", arr.shape)
print("\nNumber of elements in the Array...\n", arr.size)

# 'AT' 부분 문자열의 인덱스 찾기 (인덱스 1~3 범위에서 검색)
print("\nResult (index() method)...\n", np.char.index(arr, 'AT', start=1, end=4))

출력 결과

Array...
['KATIE' 'KATE' 'CRATE']

Array datatype...
<U5

Array Dimensions...
1

Our Array Shape...
(3,)

Number of elements in the Array...
3

Result (index() method)...
[1 1 2]

결과 해석

각 문자열에서 'AT'이 처음 나타나는 위치는 다음과 같습니다:

  • KATIE: 인덱스 1 (KATIE)
  • KATE: 인덱스 1 (KATE)
  • CRATE: 인덱스 2 (CRATE)

start=1, end=4로 지정했으므로 각 문자열의 인덱스 1부터 3까지만 검색 범위로 제한되었습니다.

주의사항

  • 부분 문자열이 없으면 ValueError 발생
  • startend는 Python 슬라이스 규칙을 따름 (end는 미포함)
  • 유니코드 문자열 배열(<U5 등)에서 정상 작동