주제 : Numpy
내용 : Numpy에 대해 강의 기반 내가 헷갈렸던 부분 위주로 정리를 해보려고 한다.
✍ 입력
import numpy as np
np.array() 함수를 사용해서 배열을 만든다.
대부분 리스트로부터 배열을 만들거나, 머신러닝 관련 함수 결과값이 배열이 된다.
1차원 배열 만들기
✍ 입력
# 1차원 리스트
a1 = [1, 2, 3, 4, 5]
# 배열로 변환
b1 = np.array(a1)
# 확인
print(b1)
✍ 출력
[1 2 3 4 5]
✍ 입력
# 2차원 리스트
a2 = [[1.5, 2.5, 3.2],
[4.2, 5.7, 6.4]]
# 배열로 변환
b2 = np.array(a2)
✍ 출력
print(b2)
[[1.5, 2.5, 3.2],
[4.2, 5.7, 6.4]]
배열[행, 열] 형태로 특정 위치의 요소를 조회합니다.
✍ 입력
# (3, 3) 형태의 2차원 배열 만들기
a = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
# 확인
print(a)
✍ 출력
[[1 2 3]
[4 5 6]
[7 8 9]]
1) 요소 조회
✍ 입력
# 첫 번째 행, 두 번째 열 요소 조회
print(a[0, 1])
✍ 출력
2
2) 행 조회
✍ 입력
# 첫 번째, 두 번째 행 조회
# print(a[[0, 1], :])
print(a[[0, 1]])
✍ 출력
[[1 2 3]
[4 5 6]]
3) 열 조회
✍ 입력
# 첫 번째, 두 번째 열 조회
print(a[:, [0, 1]])
✍ 출력
[[1 2]
[4 5]
[7 8]]
4) 행, 열 조회
✍ 입력
# 두 번째 행 두 번째 열의 요소 조회
print(a[[1], [1]])
✍ 출력
[5]
✍ 입력
# (3, 3) 형태의 2차원 배열 만들기
a = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
# 첫 번째 ~ 두 번째 행 조회
# print(a[0:2, :])
print(a[0:2])
✍ 출력
[[1 2 3]
[4 5 6]]
✍ 입력
# 첫 번째 ~ 세 번째 행, 두 번째 ~ 세 번째 열 조회
print(a[0:3, 1:3])
✍ 출력
[[2 3]
[5 6]
[8 9]]
(3) 조건 조회
✍ 입력
# 2차원 배열 만들기
score= np.array([[78, 91, 84, 89, 93, 65],
[82, 87, 96, 79, 91, 73]])
# 요소 중에서 90 이상인 것만 조회
print(score[score >= 90])
✍ 출력
[91 93 96 91]
✍ 입력
score >= 90
✍ 출력
array([[False, True, False, False, True, False],
[False, False, True, False, True, False]])
✍ 입력
# 두 개의 (2, 2) 형태의 2차원 배열 만들기
x = np.array([[1, 2], [3, 4]])
y = np.array([[5, 6], [7, 8]])
# 확인
print(x)
print(y)
✍ 출력
[[1 2]
[3 4]]
[[5 6]
[7 8]]
✍ 입력
# 배열 더하기
print(x + y)
✍ 출력
[[ 6 8]
[10 12]]
[[ 6 8]
[10 12]]
a = np.arange(10)
(1) np.where (까먹지 말기!)
np.where(조건문, True일때 값, False일 때 값)
a = np.array([1,3,2,7])
✍ 입력
# 조건
np.where(a > 2, 1, 0)
✍ 출력
array([0, 1, 0, 1])
(2) argmax & argmin
배열 내 최대값 또는 최소값의 index를 반환
axis 기반의 반환
axis = 0 : 행 방향 최대, 최소값의 index
axis = 1 : 열 방향 최대, 최소값의 index
a = np.array([1,2,4,5,8,78,23,3])
np.argmax(a), np.argmin(a)
(5, 0)