[AI 온라인 교육] 데이터 핸들링을 위한 라이브러리 Numpy

NumPy (Numerical Python): Python에서 대규모 다차원 배열을 다룰 수 있게 도와주는 라이브러리
→ 데이터의 대부분은 숫자 배열 형태이므로 이를 처리하기 위함

numpy로 배열 생성하기

import numpy as np
np_arr = np.array(range(5)) #0~4까지의 연속적인 숫자 배열 생성
print(np_arr)		#[0 1 2 3 4] → 공백으로 구분
print(type(np_arr)) #<class 'numpy.ndarray'> 

❗️list는 여러 타입의 데이터를 저장할 수 있는 것과 달리 numpy는 같은 데이터 타입만 저장 가능

배열의 데이터 타입 dtype

  • 정수형 타입: int, i, int_, int32, int64, i8
  • 실수형 타입: float, f, float_, float32, float64, f8
  • 문자열 타입: str, U, U32
  • 불 타입: bool, ?, bool_

배열의 속성

  • ndim: 차원
  • shape: 행과 열
  • size: 배열 요소의 수
    cf) len(): 배열의 길이 (행)

실습 1

import numpy as np
array = np.array(range(10)) #[0 1 2 3 4 5 6 7 8 9] 생성
print(array.ndim)   # 차원 출력 -> 1
print(array.shape)  # 모양 출력 -> (10,)
print(array.size)   # 크기 출력 -> 10
print(array.dtype)  # data type 출력 -> int64
print(array[3:6])   # 인덱스 3요소부터 5요소까지 출력
print(array.astype('str')) # dtype을 str로 변경

Indexing & Slicing

  • indexing: 인덱스로 값을 찾아냄
  • slicing: 인덱스의 값으로 배열의 일부분을 가져옴
  • Boolean indexing: 배열의 각 요소의 선택 여부를 Boolean mask를 이용하여 지정
    → Boolean mask: True, False로 구성된 mask array
  • Fancy indexing: 배열의 각 요소 선택을 Index 배열을 전달하여 지정

실습 2

import numpy as np
matrix = np.array(1, 13, 1).reshape(3, 4) 
					    '''[[ 1 2 3 4 ]
                        			[ 5 6 7 8 ]
                        			[9 10 11 12]]''' 
print(matrix[0,1])    	     # Indexing을 통해 값 2 출력
print(matrix[2:,:2])         # Slicing을 통해 9, 10 출력
print(matrix[matrix < 5]))   # Boolean indexing를 이용해 5보다 작은 수 출력
print(matrix[[0,2]])         # Fancy indexingd을 통해 0번째,2번째 행만 출력

좋은 웹페이지 즐겨찾기