[포스코x코딩온] 스마트팩토리 11주차 회고 | 파이썬 - Numpy

이남웅·2023년 6월 4일
0

Numpy모듈은 다차원 배열을 쉽게 처리하고 효율적으로 사용할 수 있도록 지원하는 파이썬 라이브러리다.

1. Ndarray

import numpy as np

ndarr = np.array([1, 2, 3])

Ndarray는 파이썬의 리스트처럼 여러가지의 자료형을 삽입할 수 없다. Ndarray는 한가지의 자료형만 허용한다. 또, 리스트의 원소의 개수가 서로 달라도 되지만 Ndarray는 원소의 개수가 서로 같아야 한다.

import numpy as np

ndarr1 = np.array([1, 2, 3])
ndarr2 = np.array([2, 3, 4])

print(ndarr1 + ndarr2)		//[3 5 7]
print(ndarr1 * ndarr2)		//[2 6 12]
print(ndarr1 / ndarr2)		//[0.5 0.66666667 0.75]

Ndarray는 행렬간의 사칙연산을 할 경우 각 원소의 사칙연산을 지원한다.

import numpy as np

ndarr = np.array([[1, 2, 3], [4, 5, 6]])
print(ndarr.ndim)			//2
print(ndarr.shape)			//(2, 3)
print(ndarr.flatten())		//[1, 2, 3, 4, 5, 6]
print(ndarr.reshape(2, 3)	//[[1 2 3]
								[4 5 6]]
print(ndarr[ndarr > 3])		//[4 5 6]

ndim: 행렬의 차원 수를 반환
shape: 행렬의 각 차원의 크기를 튜플 형태로 반환
flatten: 행렬의 평탄화 작업
reshape: 행렬의 차원을 변경
조건식: 조건식을 사용하여 해당 조건의 속성 출력

2. Ndarray 생성

import numpy as np

ndarr1 = np.zeros((2, 2))
ndarr2 = np.ones((2, 2))
ndarr3 = np.full((2, 2), 2)
ndarr4 = np.eye(3)
ndarr5 = np.random.randint(0, 10, size=(0, 4))
ndarr6 = np.random.rand(5)
ndarr7 = np.arrange(5, 10, 2)
print(ndarr1)			//[[0. 0.]
							[0. 0.]]
print(ndarr2)			//[[1. 1.]
							[1. 1.]]
print(ndarr3)			//[[2 2]
							[2 2]]
print(ndarr4)			//[[1. 0. 0.]
							[0. 1. 0.]
                            [0. 0. 1.]]
print(ndarr5)			//[3, 4, 1, 9]
print(ndarr6)			//[0.54155425, 0.12345425, 0.13454235, 
							0. 43124543, 0.13455423]
print(ndarr7)			//[5 7 9]

zeros: 영 행렬 생성
ones: 유닛 행렬 생성
full: 모든 원소가 k인 행렬 생성
eye: 단위 행렬 생성
random.randint: 정수 난수 행렬 생성
random.rand: 0~1사이의 난수 행렬 생성
arrange: 특정 순서가 있는 행렬 생성

3. 연산

import numpy as np

print(np.dot(4, 2))				//8
ndarr1 = np.array([1, 2, 3])
ndarr2 = np.array([4, 5, 6])
print(np.dot(ndarr1, ndarr2))	//32
ndarr1 = np.array([[1, 2], [3, 4]])
ndarr2 = np.array([[1, 2], [3, 4]])
print(np.dot(ndarr1, ndarr2))	//[[7 10]
									[15 22]]

numpy는 스칼라의 곱 연산, 백터 내적 연산, 행렬곱 연산 등 복잡한 수학 계산을 지원한다.

0개의 댓글