IT_developers

Python 데이터 분석(주피터노트북) - 넘파이(인덱싱, 데이터 형태)(2) 본문

Python

Python 데이터 분석(주피터노트북) - 넘파이(인덱싱, 데이터 형태)(2)

developers developing 2022. 10. 18. 12:00

인덱싱

  • 특정한 데이터 추출 : 원하는 위치의 인덱스 값 지정
  • 슬라이싱(slicing) : 연속된 인덱싱 상의 ndarray 추출
  • 팬시 인덱싱(Fancy Indexing) : 일정한 인덱싱 집합을 리스트로 또는 ndarray 형태로 지정해 해당 위치에 있는 데이터의 ndarray 반환
  • 불린 인덱싱(Boolean Indexing) : 특정 조건에 해당하는지 여부인 True/False 값 인덱싱 집합을 기반으로 True에 해당하는 인덱스 위치에 있는 데이터의 ndarray 반환

 

1. 기본 개념 및 파이썬 복습

1) 1차원

 

2) 2차원 행렬

  • 특정 요소의 접근을 원한다면 행렬로 가능

 

3) 3차원 행렬

 

2. 슬라이싱(slicing) : 연속된 인덱싱 상의 ndarray 추출

1) 1차원

 

2) 2차원

 

3. 팬시 인덱싱(Fancy Indexing) 

 

4. 불린 인덱싱(Boolean Indexing)

 

데이터 형태 변경

  • ravel / flatten
    • 다차원 배열을 1차원으로 변경
    • ravel과 flatten 차이
      • ravel : 원본의 데이터와 연결됨
      • flatten : 원본의 데이터를 복사해서 가지고 있음(연결되지 않음)
  •  reshape()
    • ndarray 차원 변경
    • reshape 한 후 결과의 전체 원소 개수와 이전 개수가 같아야 가능 

 

1) ravel()

 

2) flatten()

  • numpy.flatten(x) : AttributeError: module 'numpy' has no attribute 'flatten'

 

3) ravel과 flatten 차이

3차원

 

4) reshape() : ndarray 차원 변경

  • reshape 한 후 결과의 전체 원소 개수와 이전 개수가 같아야 가능 

  • 개수가 다르면 에러발생 
    • ValueError: cannot reshape array of size 10 into shape (3,5)

Comments