Python Numpy에서 numpy.char.find() 메서드를 사용하면 문자열 내에서 부분 문자열(sub)이 처음 나타나는 위치, 즉 가장 낮은 인덱스를 반환할 수 있습니다. 이 메서드는 정수(int) 타입의 출력 배열을 반환하며, 부분 문자열을 찾지 못한 경우 -1을 반환합니다.
첫 번째 매개변수는 입력 배열이고, 두 번째 매개변수는 검색할 부분 문자열입니다.
단계별 진행
1. 필요한 라이브러리 임포트
import numpy as np
2. 1차원 문자열 배열 생성
arr = np.array(['KATIE', 'JOHN', 'KATE', 'AmY', 'BRADley'])
3. 배열 정보 확인
생성한 배열을 화면에 출력합니다.
print("Array...\n",arr)배열의 데이터 타입을 확인합니다.
print("\nArray datatype...\n",arr.dtype)배열의 차원을 확인합니다.
print("\nArray Dimensions...\n",arr.ndim)배열의 형태(shape)를 확인합니다.
print("\nOur Array Shape...\n",arr.shape)배열에 포함된 요소의 개수를 확인합니다.
print("\nNumber of elements in the Array...\n",arr.size)4. numpy.char.find() 메서드 적용
문자열에서 부분 문자열 sub가 발견되는 가장 낮은 인덱스를 반환하려면 numpy.char.find() 메서드를 사용합니다.
print("\nResult (find)...\n",np.char.find(arr, 'AT'))전체 예제 코드
import numpy as np
# 1차원 문자열 배열 생성
arr = np.array(['KATIE', 'JOHN', 'KATE', 'AmY', 'BRADley'])
# 배열 출력
print("Array...\n",arr)
# 데이터 타입 확인
print("\nArray datatype...\n",arr.dtype)
# 배열의 차원 확인
print("\nArray Dimensions...\n",arr.ndim)
# 배열의 형태(shape) 확인
print("\nOur Array Shape...\n",arr.shape)
# 배열의 요소 개수 확인
print("\nNumber of elements in the Array...\n",arr.size)
# numpy.char.find() 메서드를 사용해 부분 문자열 'AT'가
# 발견되는 가장 낮은 인덱스를 반환합니다.
# 이 메서드는 정수 배열을 반환하며, 부분 문자열을
# 찾지 못하면 -1을 반환합니다.
# 첫 번째 매개변수는 입력 배열,
# 두 번째 매개변수는 검색할 부분 문자열입니다.
print("\nResult (find)...\n",np.char.find(arr, 'AT'))실행 결과
Array... ['KATIE' 'JOHN' 'KATE' 'AmY' 'BRADley'] Array datatype... <U7 Array Dimensions... 1 Our Array Shape... (5,) Number of elements in the Array... 5 Result (find)... [ 1 -1 1 -1 -1]
결과 해석
출력 결과를 보면 다음과 같습니다.
- 'KATIE': 인덱스 1 위치에서 'AT'를 발견했습니다.
- 'JOHN': 'AT'가 존재하지 않아 -1을 반환했습니다.
- 'KATE': 인덱스 1 위치에서 'AT'를 발견했습니다.
- 'AmY': 대소문자가 일치하지 않아 -1을 반환했습니다.
- 'BRADley': 'AT'가 존재하지 않아 -1을 반환했습니다.
이처럼 numpy.char.find() 메서드는 대소문자를 구분하며, 배열의 각 문자열 요소에 대해 부분 문자열의 시작 위치를 한 번에 계산할 수 있어 대량의 텍스트 데이터를 효율적으로 처리할 때 유용합니다.