AI 전문가가 되고싶은 사람
파이썬 프로그래밍 ( Numpy ) 복습 본문
Numpy 배열
axis : 배열의 각 축, 2차원일 경우 (axis 0 : 행, axis 1 : 열)
rank : 축의 개수 ( 위 그림에서는 2 )
shape : 축의 길이, 배열의 크기 (3, 4)
n차원 배열 만들기
1차원
list = [1,2,3,4,5]
배열로 변환 함수 ( np.array )
arr = np.array(list) -> [1,2,3,4,5]
2차원
list = [[1,3,5],
[4,2,1]]
arr = np.array(list) -> [[1,3,5]
[4,2,1]]
배열 차원 확인 ( ndim )
ex) arr.ndim
형태 확인 ( shape )
배열에 포함된 요소가 사라지지 않는 형태면 변환 가능
ex) (18,1) -> (3,6) -> (2,9) but (1,9) 요소 개수가 변했으므로 변환 안됨
shape(m,-1) 또는 shape(-1, n) 사용 시 행 또는 열 크기 한쪽만 지정해 주면 알아서 변환해 줌
요소 자료형 확인 ( dtype )
ex) arr.dtype
인덱싱
배열[행, 열]
배열[[행 1, 행 2,...],:] 또는 배열[[행 1, 행 2,..]]
배열[:, [열 1, 열 2,...]]
배열[[행 1, 행 2,...], [열 1, 열 2,...]]
3 * 3의 2차원 배열
a = np.array([[1,3,5],
[2,4,6],
[4,8,12]])
a [0,1] -> 3
a[[0,1]] -> [1 3 5]
[2 4 6]
a [:, [0,1]] -> [[1 3]
[2 4]
[4 8]]
슬라이싱
마지막 범위 값은 대상에 포함되지 않는 것을 유의
a = np.array([[1,3,5],
[2,4,6],
[4,8,12]])
a [0:2] -> [[1 3 5]
[2,4,6]]
a [1:,1:] -> [[4 6]
[8 12]]
조건 조회
조건에 맞는 요소를 선택하는 방식으로 불리안 방식이라고 함
score = np.array([[1,4,6,3,8,10]])
score >=5 -> array([[False, False, True, False, True, True]])
score [score>=5] -> [6,8,10]
여러 조건을 &(and)와 |(or)로 연결하여 조회할 수 있음
print(score[(score>=5) & (score % 2 == 0)]) -> [6 8 10]
배열 연산
배열 사이의 더하기, 빼기, 곱하기, 나누기, 행렬 곱, 행렬 합 등의 연산이 가능
x = np.array([[2,4], [6,8]])
y = np.array([[10,12], [14,16]])
더하기
print(x+y) -> [[12,16]
[20,24]]
빼기
print(x-y) -> [[-8 -8]
[-8 -8]]
곱하기
print(x*y) -> [[20 48]
[84 128]]
나누기
print(x/y) -> [[0.2 0.333333]
[0.4285 0.5]]
배열 y 제곱
print(x ** y) -> [[ 1024 1677216]
[ 1054752768 0]]
배열 집계
np.sum() 혹은 array.sum()
* axis = 0 : 열 기준 집계
* axis = 1 : 행 기준 집계
* 생략 시 전체 집계
a = np.array([[1,5,7], [2,3,8]])
[[1 5 7]
[2 3 8]
전체 집계 : 26
print(np.sum(a))
열 기준 집계 : [ 3 8 15 ]
print(np.sum(a, axis=0))
행 기준 집계 : [13 13]
print(np.sum(a, axis=1))
자주 사용되는 함수들
1. np.argmax(), np.argmin()
전체 중에서 가장 큰 값의 인덱스 : 5
print(np.argmax(a))
행 방향 최댓값의 인덱스 : [1 0 1]
print(np.argmax(a, axis=0))
열 방향 최댓값의 인덱스 : [2 2]
print(np.argmax(a, axis=1))
2. np.where(조건문, True일 때 값, False일 때 값)
a = np.array([1,2,3,4])
np.where(a <3,1,0) -> array([1,1,0,0])
'기자단 활동' 카테고리의 다른 글
분산 분석 ( ANOVA) 및 이변량 분석 복습 (0) | 2024.03.01 |
---|---|
가설 검정, 중심 극한 정리, t-test 정리 및 복습 (2) | 2024.02.28 |
파이썬 시각화와 단변량 분석 복습 ( + 시계열 데이터 처리 ) (1) | 2024.02.28 |
파이썬 프로그래밍 ( 데이터 프레임 변경 및 결합 ) 복습 (1) | 2024.02.26 |
파이썬 프로그래밍 (pandas) 복습 (0) | 2024.02.24 |