교육을 들으면서, 잘 몰랐던 부분, 헷갈렸던 부분 등만을 중심적으로 정리해 볼 생각입니다!
NumPy("넘파이"라 읽는다)는 행렬이나 일반적으로 대규모 다차원 배열을 쉽게 처리할 수 있도록 지원하는 파이썬의 라이브러리이다. NumPy는 데이터 구조 외에도 수치 계산을 위해 효율적으로 구현된 기능을 제공한다.
-위키백과
import numpy as np
# 1차원 배열
arr = np.aray([1, 2, 3, 4, 5]) # [1 2 3 4 5]
# 2차원 배열
arr2 = np.array([[1, 2, 3, 4, 5],
[6, 7, 8, 9, 10]])
print(arr2.ndim) # 2
print(arr2.shape) #(2, 5)
print(arr2.dtype) # int32
# arr2를 1차원 배열로 Reshape
a = arr2.reshape(10)
# 확인
print(a)
# [1 2 3 4 5 6 7 8 9 10]
a = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
# 첫 번째 행, 두 번째 열 요소 조회
print(a[0, 1]) # 2
# 첫 번째, 두 번째 행 조회
# print(a[[0, 1], :])
print(a[[0, 1]]
# 첫 번째, 두 번째 열 조회
print(a[:, [0, 1]])
# 두 번째 행 두 번째 열의 요소 조회
print(a[[1], [1]])
# 첫 번째 ~ 두 번째 행 조회
# print(a[0:2, :])
print(a[0:2])
# 첫 번째 행, 첫 번째 ~ 두 번째 열 조회
print(a[0, 0:2])
# 첫 번째 ~ 세 번째 행, 두 번째 ~ 세 번째 열 조회
print(a[0:3, 1:3])
# 두 번째 ~ 끝 행, 두 번째 ~ 끝 열 조회
print(a[1:, 1:])
score= np.array([[78, 91, 84, 89, 93, 65],
[82, 87, 96, 79, 91, 73]])
# 요소 중에서 90 이상인 것만 조회
print(score[score >= 90])
# 요소 중에서 90 이상인 것만 조회
condition = score >= 90
print(score[condition])
- 옵션 없이 사용하면, 전체에 대한 집계
- axis = 0: 행 방향 집계 (행 인덱스 증가 방향)
- axis = 1: 열 방향 집계 (열 인덱스 증가)
a = np.array([[1, 2, 3],[4, 5, 6]])
# 전체 집계
print(np.sum(a)) # 21
# 열기준 집계
print(np.sum(a, axis = 0)) # [ 5 7 9]
# 행기준 집계
print(np.sum(a, axis = 1)) # [6 15]
a = np.array([[1, 2, 3],[4, 5, 6]])
# 전체 중에서 가장 큰 값의 인덱스
print(np.argmax(a)) # 5
# 행 방향 최대값의 인덱스
print(np.argmax(a, axis = 0)) # [1 1 1]
# 열 방향 최대값의 인덱스
print(np.argmax(a, axis = 1)) # [2 2]
# 선언
a = np.array([1,3,2,7])
# 조건
np.where(a > 2, 1, 0) # array([0, 1, 0, 1])
헷갈리는 거랑 모르는거만 정리해야지! 했는데
나도 모르게 다 적어버렸다..
블로그가 처음이라 그런가 매우 어색하다..
아무래도 Numpy는 학부 연구생 때 써봤던거라 익숙하다. 그래도 혹시 모르니 정리하면서 한 번더 각인하자.
잘 읽었습니다. 좋은 정보 감사드립니다.