Data Analysis/Data Analysis ?

데이터 분석 도구: 배열(연산, 인덱싱, 슬라이싱)

js-kkk 2025. 2. 27. 09:39

2. 데이터 분석 도구 시작

2-1. 리스트 다시 보기

2-1-1. 리스트를 다시 짚고 넘어가는 이유는?

  1. 데이터 구조의 기본 개념을 이해하는 데 필수적이다.
    • 데이터 분석 도구로 알아볼 Numpy의 ndarray와 Pandas의 Series/DataFrame은 파이썬 리스트와 유사한 구조를 갖고 있다.
      • Numpy의 ndarray는 다차원 배열로, 파이썬의 리스트를 확장하여 수치 계산에 최적화된 형태이다.
      • Pandas의 Series와 DataFrame은 각각 1차원 및 2차원 데이터 구조로, 인덱싱과 슬라이싱 개념을 활용한다.
    • 따라서 리스트의 개념을 이해하면 Numpy와 Pandas의 데이터 구조를 쉽게 습득할 수 있고, 내부 동작을 이해할 수 있다.
  2. 인덱싱과 슬라이싱은 데이터 접근과 조작의 기본이다.
    • 데이터 분석에서는 특정 위치의 데이터에 접근하거나, 데이터의 일부분을 추출하는 작업이 빈번하게 발생한다.
      • Numpy 배열이나 Pandas 객체에서도 인덱스를 사용하여 데이터에 접근한다.
      • Numpy와 Pandas에서도 슬라이싱을 통해 데이터의 부분 집합을 효율적으로 추출할 수 있다.
    • 인덱싱과 슬라이싱의 개념을 이해하면 복잡한 데이터 조작을 쉽게 수행할 수 있다.

2-1-2. 리스트 연산

  • 리스트 합치기: +
    • 리스트 간 + 연산자를 이용하여 하나로 합칠 수 있다.
safari_list = ["Bear", "Koala", "Gorilla", "Squirrel"]
another_safari_list = ["Monkey", "Tiger", "Wolf"]

print(safari_list + another_safari_list)    # ['Bear', 'Koala', 'Gorilla', 'Squirrel', 'Monkey', 'Tiger', 'Wolf']
  • 리스트 반복: *
    • 리스트에 * 연산을 하면 요소를 반복할 수 있다.
safari_list = ["Bear", "Koala", "Gorilla", "Squirrel"]

print(safari_list * 4)    # ['Bear', 'Koala', 'Gorilla', 'Squirrel', 'Bear', 'Koala', 'Gorilla', 'Squirrel', 'Bear', 'Koala', 'Gorilla', 'Squirrel', 'Bear', 'Koala', 'Gorilla', 'Squirrel']

 

2-1-3. 인덱싱

  • 시퀀스 자료형의 인덱스를 가지고 특정 요소를 추출할 수 있다.
# 문자열
address = '대한민국 서울시 서초구'
print(address[5])    # 서
print(address[9])    # 서

# 리스트
location = ['서울특별시', '부산광역시', '인천광역시', '광주광역시', '울산광역시']
print(location[2])    # 인천광역시

# 튜플
nation = ('대한민국', '미국', '중국', '일본', '프랑스')
print(nation[3])    # 일본
  • 인덱스를 음수로 지정하면 문자열 끝에서부터 요소를 찾는다.
# 문자열
address = '대한민국 서울시 서초구'
print(address[-3])    # 서
print(address[-7])    # 서

# 리스트
location = ['서울특별시', '부산광역시', '인천광역시', '광주광역시', '울산광역시']
print(location[-2])    # 광주광역시

# 튜플
nation = ('대한민국', '미국', '중국', '일본', '프랑스')
print(nation[-3])    # 중국

2-1-4. 슬라이싱

  • 인덱스를 사용하여 기존 시퀀스 자료에서 원하는 만큼의 문자열을 추출할 수 있다.
# 문자열
address = '대한민국 서울시 서초구'
print(address[5:8])     # 서울시 (5번 인덱스부터 8번 인덱스 전까지)

# 리스트
location = ['서울특별시', '부산광역시', '인천광역시', '광주광역시', '울산광역시']
print(location[2:4])     # ['인천광역시', '광주광역시'] (2번 인덱스부터 4번 인덱스 전까지)

# 튜플
nation = ('대한민국', '미국', '중국', '일본', '프랑스')
print(nation[0:3])     # ('대한민국', '미국', '중국') (0번 인덱스부터 3번 인덱스 전까지)

 

  • 자료형 뒤에 대괄호를 붙이고 (시작 인덱스) : [(끝 인덱스)] : [(오프셋)] 으로 문자열을 추출할 수 있다.
    • 시작 인덱스: 문자열에서 추출할 내용이 시작하는 인덱스 (시작 인덱스를 비우면 처음부터)
    • 끝 인덱스: 문자열에서 추출할 내용의 끝 글자 다음 인덱스 (끝 인덱스를 비우면 끝까지)
    • 오프셋: 시작 인덱스부터 오프셋 숫자만큼 더한 인덱스 위치마다에서 추출
# 문자열
address = '대한민국 서울시 서초구'
print(address[9:])      # 서초구 (9번 인덱스부터 끝까지)
print(address[-3:])     # 서초구 (뒤에서 3번째 인덱스부터 끝까지)
print(address[1:12:4])  # 한서서 (1번 인덱스부터 12번 인덱스 전까지 추출하는데 4개씩 건너뛰면서 추출)
print(address[::-1])    # 구초서 시울서 국민한대 (슬라이싱을 이용해 [::-1]을 주면 문자열 뒤집기)

# 리스트
location = ['서울특별시', '부산광역시', '인천광역시', '광주광역시', '울산광역시']
print(location[2:])      # 2번 인덱스부터 끝까지 (['인천광역시', '광주광역시', '울산광역시'])
print(location[-2:])     # 뒤에서 2번째 인덱스부터 끝까지 (['광주광역시', '울산광역시'])
print(location[1:3:2])   # 1번 인덱스부터 3번 인덱스 전까지 추출하는데 2개씩 건너뛰면서 추출 (['부산광역시'])
print(location[::-1])    # 슬라이싱을 이용해 [::-1]을 주면 뒤집기 (['울산광역시', '광주광역시', '인천광역시', '부산광역시', '서울특별시'])

# 튜플
nation = ('대한민국', '미국', '중국', '일본', '프랑스')
print(nation[1:])      # 1번 인덱스부터 끝까지 (('미국', '중국', '일본', '프랑스'))
print(nation[-3:])     # 뒤에서 3번째 인덱스부터 끝까지 (('중국', '일본', '프랑스'))
print(nation[1:5:2])   # 1번 인덱스부터 5번 인덱스 전까지 추출하는데 2개씩 건너뛰면서 추출 (('미국', '일본'))
print(nation[::-1])    # 슬라이싱을 이용해 [::-1]을 주면 뒤집기 (('프랑스', '일본', '중국', '미국', '대한민국'))

'Data Analysis > Data Analysis ?' 카테고리의 다른 글

데이터 분석 도구 : Pandas  (0) 2025.03.04
데이터 분석 도구 : NumPy  (0) 2025.02.27
데이터 분석(Data Analysis) 이란?  (0) 2025.02.27