배열 내 문자열 요소가 지정된 접미사(suffix)로 끝나는 위치를 True로 표시하는 부울(Boolean) 배열을 반환하려면 Python NumPy의 numpy.char.endswith() 메서드를 사용하면 됩니다. 이 메서드는 bool 값으로 구성된 배열을 출력하며, 첫 번째 매개변수는 입력 배열, 두 번째 매개변수는 검사할 접미사입니다. 또한 선택적 start 매개변수로 해당 위치부터 검사를 시작하고, 선택적 end 매개변수로 해당 위치에서 비교를 중단할 수 있습니다.
단계별 진행 과정
먼저 필요한 라이브러리를 임포트합니다.
import numpy as np
1차원 문자열 배열을 생성합니다.
arr = np.array(['KATIE', 'JOHN', 'KATE', 'AmY', 'CRADlE'])
생성한 배열을 화면에 출력합니다.
print("Array...\n",arr)배열의 데이터 타입(dtype)을 확인합니다.
print("\nArray datatype...\n",arr.dtype)배열의 차원(ndim)을 확인합니다.
print("\nArray Dimensions...\n",arr.ndim)배열의 형태(shape)를 확인합니다.
print("\nOur Array Shape...\n",arr.shape)배열에 포함된 요소의 개수(size)를 확인합니다.
print("\nNumber of elements in the Array...\n",arr.size)문자열 요소가 접미사로 끝나는 위치가 True인 부울 배열을 반환하기 위해 numpy.char.endswith() 메서드를 호출합니다. 여기서는 start=2, end=4로 설정하여 각 문자열의 인덱스 2부터 3까지의 부분 문자열만 검사합니다.
print("\nResult (endswith)...\n",np.char.endswith(arr, 'E', start = 2, end = 4))전체 예제 코드
import numpy as np
# 1차원 문자열 배열 생성
arr = np.array(['KATIE', 'JOHN', 'KATE', 'AmY', 'CRADlE'])
# 배열 출력
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.endswith() 메서드로 각 문자열이 접미사 'E'로 끝나는지 검사
# start=2, end=4로 지정하여 인덱스 2~3 범위의 부분 문자열만 비교
print("\nResult (endswith)...\n",np.char.endswith(arr, 'E', start = 2, end = 4))실행 결과
Array... ['KATIE' 'JOHN' 'KATE' 'AmY' 'CRADlE'] Array datatype... <U6 Array Dimensions... 1 Our Array Shape... (5,) Number of elements in the Array... 5 Result (endswith)... [False False True False False]
결과 해석
start=2, end=4 옵션 때문에 각 문자열의 인덱스 2부터 3까지(즉, 세 번째와 네 번째 글자)만 잘라내어 접미사 'E'와 비교합니다. 'KATIE'[2:4]는 'TI', 'JOHN'[2:4]는 'HN', 'KATE'[2:4]는 'TE', 'AmY'[2:4]는 'Y', 'CRADlE'[2:4]는 'AD'이므로 이 중 'E'로 끝나는 것은 'TE'(KATE) 하나뿐입니다. 따라서 결과 배열은 [False False True False False]가 됩니다. 만약 start와 end 옵션 없이 전체 문자열을 검사했다면 'KATIE', 'KATE', 'CRADlE' 세 요소가 True로 반환되었을 것입니다.