Numpy 라이브러리
본문 바로가기

Numpy 라이브러리

Numpy란?

: Numerical Python
Python에서 대규모 다차원 배열을 다룰 수 있게 도와주는 라이브러리이다. 데이터의 대부분은 숫자의 배열로 볼 수 있기에, 데이터를 다루는 데에 Numpy 라이브러리를 사용한다. Numpy는 반복문 없이 배열을 처리할 수 있기 때문에, 파이썬 리스트에 비해 연산이 빠르고 메모리를 효율적으로 사용할 수 있다.

Numpy 사용하기

import numpy as np 
np_arr = np.array(range(5)) 
print(np_arr) # [0 1 2 3 4] -> 공백으로 구분 
print(type(np_arr)) # <class 'numpy.ndarray'>

numpy 라이브러리는 관습적으로 np라고 줄여서 사용한다.
ndarray = n차원의 배열 (n-dimensional array)

파이썬 리스트와 달리 array는 같은 데이터 타입만 저장

1차원 배열의 속성

import numpy as np 
array = np.array(range(10)) 
print(array) # [0 1 2 3 4 5 6 7 8 9] 

#1. array의 자료형 출력 
print(tyep(array)) # <class 'numpy.ndarray'> 

#2. array의 차원 출력 
print(array.ndim) # 1 

#3. array의 모양 출력
print(array.shape) # (10,) 

#4. array의 크기 출력 
print(array.size) # 10

#5. array의 dtype(data type) 출력
print(array.dtype) # object 

#6. array의 인덱스 5의 요소 출력 
print(array[5]) # 5 

#7. array의 인덱스 3의 요소부터 5의 요소까지 출력 
print(array[3:6]) # [3 4 5]

2차원 배열의 속성

import numpy as np 
matrix = np.array(range(1,16)) 
matrix.shape = 3,5 # 3행 5열의 행렬을 만든다. 
print(matrix) # [[ 1 2 3 4 5] 
               # [ 6 7 8 9 10] 
               # [11 12 13 14 15]] 
               
# 1. matrix의 자료형 출력 
print(type(matrix)) # <class 'numpy.ndarray'> 

# 2. matrix의 차원 출력 
print(matrix.ndim) # 2 

# 3. matrix의 모양 출력 
print(matrix.shape) # (3, 5) 

# 4. matrix의 크기 출력 
print(matrix.size) # 15 

# 5. matrix의 dtype(data type) 출력 
print(matrix.dtype) # int64 

# 6. matrix의 dtype을 str로 변경하여 출력 
print(matrix.astype('str')) # [['1' '2' '3' '4' '5'] 
                             # ['6' '7' '8' '9' '10'] 
                             # ['11' '12' '13' '14' '15']] 
                             
# 7. matrix의 (2,3) 인덱스의 요소 출력 (3행 4열의 요소) 
print(matrix[2,3]) # 14 

# 8. matrix의 행은 인덱스 0부터 인덱스 1까지, 열은 인덱스 1부터 인덱스 3까지 출력 
# (1행부터 2행까지, 1열부터 3열까지) 
print(matrix[0:2, 1:4]) # [[2 3 4] 
                         # [7 8 9]]

Boolean indexing

: 배열의 각 요소 선택 여부를 Boolean mask를 이용하여 지정하는 방식

x = np.arrange(7) # [0 1 2 3 4 5 6] 
# Boolean mask의 True 요소에 해당하는 index만을 조회 
print(x[x < 3]) # [0 1 2] 
print(x[x % 2 == 0]) # [0 2 4 6]

Fanxy indexing

: 배열의 각 요소 선택을 index 배열을 전달하여 지정하는 방식

x = np.arange(1, 13, 1).reshape(3, 4) # [[ 1 2 3 4] 
                                       # [ 5 6 7 8] 
                                       # [ 9 10 11 12]] 
print(x[[0, 2]]) # [[ 1 2 3 4] 
                  # [ 9 10 11 12]]

Indexing x Slicing

x = np.arange(1, 13, 1).reshape(3, 4) 
# [[ 1 2 3 4] 
 # [ 5 6 7 8] 
 # [ 9 10 11 12]] 
 
 print(x[1:2, 2]) # 7 
 print(x[[0, 2], 2]) # [ 3 11] 
 print(x[[0, 2], :2]) 
 # [[ 1 2 ] 
  # [ 9 10]]

'공부 기록 > 파이썬' 카테고리의 다른 글

객체 지향 프로그래밍 - 1  (0) 2022.03.23
여러가지 자료형태와 고급 파이썬  (0) 2021.11.19
Matplotlib 데이터 시각화  (0) 2021.11.12
Pandas 심화 학습  (0) 2021.11.12
Pandas 기본  (0) 2021.11.11