updated_at: 2024-12-14 16:37

Numpy

주로 행렬/배열 처리 및 연산에 사용한다. <br

import numpy as np   #numpy는 기니까 np로 줄여서 사용
a = np.array([0,1,2,3,4,5,6,7,8,9])
b = np.array([0.12 , 0.34, 0.45, 0.66])
c = np.array(['a' , 'b' , 'c'])
print(type(a))"

print(type(a))의 결과는 <class 'numpy.ndarray'> 로 나오는 것을 확인 할 수 있습니다.

Python 리스트

  • 여러가지 타입의 원소
  • linked List 구현
  • 메모리 용량이 크고 속도가 느림
  • 벡터화 연산 불가"

NumPy ndarray

  • 동일 타입의 원소
  • contiguous memory layout
  • 메모리 최적화, 계산 속도 향상
  • 벡터화 연산 가능"

다차원 행렬 인덱싱 및 슬라이싱

a = np.array([[0, 1, 2], [3, 4, 5]])
a[0,0]  # first row , first col
a[0,1]  # first row , second col
a[-1,-1] # last row , last col
a = np.array([[0, 1, 2, 3], [4, 5, 6, 7]])
a[0,:]  # first row(전체)
a[:,1]  # second col (전체)
a[1,1:] # second row의 second col 부터 끝까지
a[:,0:3] #모든 row의 0:3까지 col
a[0:5]행 0 번째 부터 4번째까지
a[:5]행 0 번째 부터 4번째까지
a[5:]4번째 부터 끝까지

numpy.dot

각 원소를 곱한 값들을 더하는 연산 수행

1차원 x 1차원

a = np.array([1, 3, 5])
b = np.array([4, 2, 1])
np.dot(a, b)

# 실행 1x4 + 3x2 + 5x1 = 15
# 결과 : 15

2차원 x 2차원

# 2차원 x 2차원
a = np.array([[A0, A1], [a0, a1]])
b = np.array([[B0, B1], [b0, b1]])
[[A0 x B0 + A1 x b0, A0 x B1 + A1 x b1], [a0 x B0 + a1 x b0, a0 x B1 + a1 x b1]]

a = np.array([[1, 3], [2, 4]])
b = np.array([[1, 6], [3, 0]])
np.dot(a, b)

# 결과
[[1 x 1 + 3 x 3, 1 x 6 + 3 x 0], [2 x 1 + 4 x 3, 2 x 6 + 4 x 0]]
array([[10,  6],
       [14, 12]])
평점을 남겨주세요
평점 : 5.0
총 투표수 : 1

질문 및 답글