[KT AIVLE 4기] Python 프로그래밍 & 라이브러리 1

리니·2023년 8월 13일
5

KT AIVLE

목록 보기
2/22
post-thumbnail

교육을 들으면서, 잘 몰랐던 부분, 헷갈렸던 부분 등만을 중심적으로 정리해 볼 생각입니다!

NumPy

NumPy("넘파이"라 읽는다)는 행렬이나 일반적으로 대규모 다차원 배열을 쉽게 처리할 수 있도록 지원하는 파이썬의 라이브러리이다. NumPy는 데이터 구조 외에도 수치 계산을 위해 효율적으로 구현된 기능을 제공한다.
-위키백과

📌 라이브러리 불러오기

import numpy as np

📌 배열만들기: np.array()

# 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]])

📌 주요 용어 정리

  • np.ndim: 차원 확인
  • np.shape: 형태(크기) 확인
  • np.dtype: 요소 자료형 확인
print(arr2.ndim)	# 2
print(arr2.shape)	#(2, 5)
print(arr2.dtype)	# int32
  • np.reshape: 차원 변환
    배열에 포함된 요소가 사라지지 않는 형태라면 자유롭게 변환할 수 있다.
    • -1의 편리성
      (m, -1) 또는 (-1, n) 처럼 사용해 행 또는 열 크기 한 쪽만 지정할 수 있다.
# 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])

📌 배열 연산

✔️ 배열 사칙연산

  • np.add(): 더하기
  • np.substract(): 빼기
  • np.multiply(): 곱하기
  • np.divide(): 배열 나누기
  • np.power(): 지수연산

✔️ 배열 집계

  • np.sum()
  • np.mean()
  • np.std()
    • 옵션 없이 사용하면, 전체에 대한 집계
    • 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]
  • np.max()
  • np.min()

✔️ 자주 사용되는 함수

  • np.argmax(): 가장 큰 값의 인덱스 반환
  • np.argmin(): 가장 작은 값의 인덱스 반환
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]
  • np.where(): 조건에 따라 다른 값 지정
# 선언
a = np.array([1,3,2,7])

# 조건
np.where(a > 2, 1, 0)	# array([0, 1, 0, 1])

헷갈리는 거랑 모르는거만 정리해야지! 했는데
나도 모르게 다 적어버렸다..
블로그가 처음이라 그런가 매우 어색하다..

아무래도 Numpy는 학부 연구생 때 써봤던거라 익숙하다. 그래도 혹시 모르니 정리하면서 한 번더 각인하자.

profile
😊

2개의 댓글

comment-user-thumbnail
2023년 8월 13일

잘 읽었습니다. 좋은 정보 감사드립니다.

답글 달기
comment-user-thumbnail
2023년 11월 30일

배워갑니다

답글 달기