1. numpy이란?
Python에서 수학 및 과학 연산을 위해 사용된 오래된 기초 패키지로, 기본적으로 array(행렬)라는 자료를 생성하고 이를 바탕으로 색인, 처리, 연산 등을 하는 기능을 수행한다. Python의 pandas, scipy 등의 패키지와 함께 사용되는 경우가 많다.
2. numpy libarary 사용하기
- numpy는 일반적으로 np로 줄여서 사용한다.
import numpy as np
3. 배열 생성하기
- np.array: 배열을 생성하는 함수
# 1차원
a1 = np.array([1,2,3])
# 2차원
a2 = np.array([[1,2,3],[4,5,6]])
# 2차원
a3 = np.array([[1,2,3]])
- np.ndim: 배열의 차원을 확인
print(a1.ndim)
print(a2.ndim)
print(a3.ndim)
- np.arrange: 연속되거나 일정한 규칙을 가진 숫자로 배열 생성
a4 = np.arange(1,20)
a5 = np.arange(20)
a6 = np.arange(1,20,3)
- np.zeros: 0으로 이루어진 배열 생성
zeros_arr = np.zeros((3,4))
- np.ones: 1으로만 이루어진 배열 생성
ones_arr = np.ones((3,4))
- np.zeros_like: 이미 생성된 배열을 0으로 채워진 배열로 초기화
zeros_new = np.zeros_like(ones_arr)
- np.ones_like: 이미 생성된 배열을 1으로 채워진 배열로 초기화
ones_new = np.ones_list(zeros_arr)
- np.full: 배열의 모든 값이 특정 상수로만 이루어진 배열 생성
full_arr = np.full((3,4),9)
- np.random.ranom: ramdom 값으로 채워진 배열 생성
rd_arr = np.random.random((3,5))
- np.eye: 대각선이 1이고 나머지는 0인 대각행렬 배열 생성
eye_arr = np.eye(5)
4. reshape: 배열 크기 변형
- 기존에 생성된 배열의 차원과 크기를 변형 할 수 있다.
- order = C(행) or F(열)
- -1: 원래 배열과 호환되는 형태로 배열 변환
- 참고: fletten() 함수를 통해 1차원 배열로 변형 가능
arr1 = np.arange(15)
re_arr1 = arr1.reshape(3,5)
re_arr2 = arr1.reshape(3,5,order = F)
re_arr3 = arr1.reshape(-1,5)
5. 배열에서 데이터 추출하기
1. 인덱싱: 배열에서 추출하고자 하는 요소의 인덱스 값을 통해 데이터를 추출
index_arr = np.arange(1,12)
val1 = index_arr[3]
val2 = index_arr[-1]
2. 슬라이싱: 배열에서 인덱스 값을 통해 연속하는 데이터를 추출
# 1차원 배열 슬라이싱
slicing_arr1 = np.arange(1,12)
val1 = slicing_arr1[:3]
val2 = slicing_arr1[2:5]
# 2차원 배열 슬라이싱
slicing_arr2 = np.arange(1,10)
slicing_arr_new = slicing_arr2.reshape(3,3)
val1 = slicing_arr_new[0:2,0:2]
val1 = slicing_arr_new[1:2,0:2]
val3 = slicing_arr_new[:2,1:]
6. 선형대수 기본 연산
- np.dot: 행렬 내적 연산
# 2x3 행렬
arr1 = np.array([[1,2,3],
[1,2,3]])
# 3x3 행렬
arr2 = np.array([[[1,2,3],
[4,5,6],
[7,8,9]]])
# 2x3 행렬
dot_arr = np.dot(arr1,arr2)
- np.transpose: 행과 열의 위치는 바꾼 전치 행렬 연산
# 2x3 > 3x2 행렬로 변환
arr = np.array([[1,2,3],
[4,5,6]])
trans_arr = np.transpose(arr)
7. 배열 기술통계 연산
1. 배열의 데이터 개수 구하기
# 3x4 행렬
# 2차원 배열
arr = np.array([[1,2,3,4],
[4,5,6,7],
[7,8,9,10]])
len(arr)
len(arr[0])
2. 평균, 분산, 표준편차 계산
arr = np.array([1,2,3,4,5,6,7,8,9,10])
# 평균
np.mean(arr)
# 분산
np.var(arr)
# 표준편차
np.std(arr)
3. 최댓값, 최솟값, 중앙값 계산
arr = np.array([1,2,3,4,5,6,7,8,9,10])
np.max(arr)
np.min(arr)
np.median(arr)
4. 사분위수
arr = np.array([1,2,3,4,5,6,7,8,9,10])
# 1사분위수
np.percentile(arr,25)
# 2사분위수
np.percentile(arr,50)
# 3사분위수
np.percentile(arr,75)
NumPy - 나무위키
Scipy (싸이파이 = 싸이언스 + 파이썬) Numpy와 Scipy는 서로 떨어질 수 없을 정도로 밀접한 관계에 있으며 Scipy를 활용할 때에는 상당히 많이 Numpy를 이용하게 된다. 실제로 Scipy에 관한 책을 구매했을
namu.wiki
https://github.com/numpy/numpy
GitHub - numpy/numpy: The fundamental package for scientific computing with Python.
The fundamental package for scientific computing with Python. - GitHub - numpy/numpy: The fundamental package for scientific computing with Python.
github.com
'language > Python' 카테고리의 다른 글
[Module] 파이썬 파일(.py)을 import 하는 방법 (0) | 2023.11.16 |
---|---|
[Function] 가변 인자(*args)와 키워드 가변 인자(**kwargs) (0) | 2023.11.16 |
[자료형] List Comprehension (0) | 2023.11.15 |
[자료형] List - 자주 사용하는 메소드 함수 (0) | 2023.08.08 |
Python으로 Kafka Producer 구현 (0) | 2022.10.27 |