- 대용량 데이터 처리에 용이하다.
- python list에 대해 빠른 연산 지원하며 메모리를 효율적으로 사용한다.
import numpy as np
# 1차원
np.array([1, 2, 3, 4, 5]) # array([1, 2, 3, 4, 5])
# 2차원
np.array([[1, 2],
[3, 4]])
# type 지정
np.array([1, 2, 3, 4, 5], dtype="float")
# array([1., 2., 3., 4., 5.])
arr.dtype # 타입 확인하기
arr.astype(int) # 타입 변경하기
np.zeros(10, dtype=int)
# array([0, 0, 0, ..., 0])
np.ones((3, 5), dtype=float)
# array([[1., 1., 1., 1., 1.,],
...
[1., 1., 1., 1., 1.,]])
np.arange(0, 20, 2) # (start, end, step)
np.linspace(0, 1, 5) # 0~1 사이를 5개로 나누어 만들기
# array([0, 0.25, 0.5, 0.75, 1])
np.random.random((2, 2)) # 2 by 2의 난수
# 정규 분포로 데이터 추출
np.random.normal(0, 1, (2, 2)) # (평균, 표준편차, 행렬 크기)
# 정수로 된 난수
np.random.randint(0, 10, (2, 2))
x1 = np.random.randint(10, size=(3, 4))
# array([[6, 0, 5, 0],
[8, 9, 7, 2],
[4, 0, 2, 9]])
x2.ndim # 2
x2.shape # (3, 4)
x2.size # 12
x2.dtype # dtype('int64')
x = np.arange(7)
x[::2] # 2씩 건너뛴 값만 출력
# [0, 2, 4, 6]
# 1~15의 3 by 5 행렬
matrix = np.arange(1, 16).reshape(3,5)
# matrix의 (2,3) 인덱스의 요소를 출력
print(matrix[2, 3])
# matrix의 행은 인덱스 0부터 인덱스 1까지, 열은 인덱스 1부터 인덱스 3까지 출력
print(matrix[0:2, 1:4])
1. reshape
x = np.arange(8)
x.shape # (8,)
x2 = x.reshape((2, 4))
# array([[0, 1, 2, 3],
[4, 5, 6, 7]])
2. concatenate
x = np.array([0, 1, 2])
y = np.array([3, 4, 5)
np.concatenate([x, y])
# array([0, 1, 2, 3, 4, 5])
# 축을 기준으로 이어 붙이기
np.concatenate([matrix, matrix], axis=0) # 행 기준
np.concatenate([matrix, matrix], axis=1) # 열 기준
3. split
# split(나눌 대상, 어디를 나눌지, 방향)
# 3행 위쪽은 upper, 아래쪽은 lower로 들어가게 된다.
upper, lower = np.split(matrix, [3], axis=0)
left, right = np.split(matrix, [3], axis=1)
x = np.arange(4)
# array([0, 1, 2, 3])
x + 5 # array([5, 6, 7, 8])
x - 5
x * 5
x / 5
# matrix는 3 by 3 행렬
# matrix의 각 행에 대해 [1, 2, 3] 행을 더하게 된다.
matrix + np.array([1, 2, 3])
1. 집계함수
x = np.arange(8).reshape((2, 4))
np.sum(x)
np.min(x)
np.max(x)
np.mean(x)
np.std(x) # 표준편차
# 축을 기준으로한 집계
np.sum(x, axis=0)
np.sum(x, axis=1)
2. 마스킹 연산
x = np.arange(5)
x < 3
# array([True, True, True, False, False])
x > 5
x[x < 3] # x < 3인 원소들만 출력
# array([0, 1, 2])
🐧 이 글은 엘리스 AI 트랙 과정 중 '실전 데이터 분석' 강의 내용을 바탕으로 작성 되었습니다.