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 |