[딥러닝] Theme02. 넘파이(Numpy) 라이브러리 시작하기

2023. 7. 21. 10:00Python 파이썬

반응형
SMALL

넘파이 배열 생성

import numpy as np

x = np.array([1.0, 2.0, 3.0])
print(x)
print(type(x))

넘파이 배열은 np.array() 메서드를 이용하여 만들 수 있습니다. np.array()는 파이썬의 리스트를 인수로 받아 넘파이 라이브러리가 제공하는 특수한 배열로 반환합니다.

 

넘파이 배열 생성 결과

 

 

 

넘파이 배열 산술 연산

import numpy as np

x = np.array([1.0, 2.0, 3.0])
y = np.array([2.0, 4.0, 6.0])

print(x + y)
print(x * y)
print(x / y)

위에서 생성한 넘파이 배열은 연산에도 활용할 수 있습니다. 위의 코드는 넘파이 배열끼리 연산하는 소스 코드입니다.

 

넘파이 배열 산술 연산 결과

x와 y의 원소 수가 같은 경우 산술 연산은 각 원소에 대해서 이루어집니다. 배열의 원소 수가 다르면 오류가 발생합니다.

 

 

 

넘파이 N 차원 배열

import numpy as np

A = np.array([[1, 2], [3, 4]])
print(A)
print(A.shape)
print(A.dtype)

B = np.array([[3, 0], [0, 6]])
print(A + B)
print(A * B)
print(A * 10)

 

위의 코드에서 shape은 행렬의 차수를 나타내고, dtype은 행렬에 담긴 원소의 자료형을 나타냅니다.

뿐만 아니라 배열과 마찬가지로 형상이 같은 행렬끼리 산술 연산도 가능합니다.

 

N 차원 배열 실행 결과

넘파이 배열은 N 차원 배열을 작성할 수 있습니다. 수학에서는 1차원 배열은 벡터, 2차원 배열은 행렬이라고 부릅니다. 또 벡터와 행렬을 일반화한 것을 '텐서'라 합니다. 구글의 딥러닝 프레임워크인 텐서플로의 이름이 여기서 유래했습니다. 텐서가 신경망을 타고 흐른다는 뜻을 내포하고 있습니다.

SMALL

 

 

 

 

배열의 원소 접근 방법

import numpy as np

X = np.array([[51, 55], [14, 19], [0, 4]])
print(X)
print(X[0])

for i in X:
    print(i)

X = X.flatten() # X를 1차원 배열로 변환(평탄화)
print(X)
print(X[np.array([0, 2, 4])])

print(X > 15)
print(X[X > 15])

 

넘파이 배열의 원소 접근 방법은 일반적인 파이썬 리스트의 원소 접근 방법과 동일합니다. 인덱스를 입력하여 각 원소에 접근할 수 있고 for 문으로도 각 원소에 접근할 수 있습니다.

 

뿐만 아니라 flatten 메서드를 사용해 다차원 배열을 1차원 배열로 평탄화할 수 있습니다.

 

넘파이 배열에 부등호 연산자를 사용하면 bool 배열의 결괏값이 출력됩니다.

 

원소 접근 실행 결과

 

 

 

다음에는 matplotlib 라이브러리 실행 방법에 대해 알아보겠습니다.

감사합니다.

 

반응형
LIST