numpy

더보기
import numpy as np

# 생성
print("---생성---")
a = np.zeros((10,) + (5,) + (4,) + (3,), dtype=np.uint8)
print("현재차원\n", a.shape)

# 차원변경
print("---차원변경---")
b = np.zeros((20,))
print("b(20,)\n", b)
b = b.reshape(5, 4)
print("b(5, 4)\n", b)
b = b.reshape(2, 10)
print("b(2, 10)\n", b)

# 데이터 타입 변환
print("---데이터 타입 변환---")
c = np.zeros((10,))
print("현재타입\n", c.dtype)
c = c.astype(np.uint8)
print("현재타입\n", c.dtype)

# 스칼라곱
print("---스칼라곱---")
a1 = np.array([1, 2, 3])
a2 = np.array([[1, 2, 3], [4, 5, 6]])
print("a1\n", a1)
print("a2\n", a2)
print("스칼라곱 결과 a1 * a2\n", a1 * a2)  # [1*1+2*2+3*3, 1*2+2*5, 1*3+2*6]
# 스칼라곱 차원오류
# print("---스칼라곱 차원오류---")
# a1 = np.array([1,2,])
# a2 = np.array([[1,2,3],[4,5,6]])
# print("a1\n" ,a1)
# print("a2\n" ,a2)
# print("스칼라곱 결과 a1 * a2\n", a1*a2)

# 내적
print("---내적---")
a1 = np.array([1, 2])
a2 = np.array([[1, 2, 3], [4, 5, 6]])
print("a1\n", a1)
print("a2\n", a2)
print("dot연산 a1 dot a2\n", np.dot(a1, a2))  # [1*1+2*4, 1*2+2*5, 1*3+2*6]

# 합
print("---합---")
d = np.array([[1, 2, 3], [4, 5, 6]])
print("d\n", d)
print("axis없을때\n", np.sum(d))
print("axis=0일때\n", np.sum(d, axis=0))
print("axis=1일때\n", np.sum(d, axis=1))

 

함수 설명

더보기

생성

# 생성
print("---생성---")
a = np.zeros((10,) + (5,) + (4,) + (3,), dtype=np.uint8)
print("현재차원\n", a.shape)

numpy 배열 생성은 일반 언어 배열 생성처럼 차원을 미리 정해줘야함

위 예제는 (10X5X4X3)차원 배열임


더보기

차원변경

# 차원변경
print("---차원변경---")
b = np.zeros((20,))
print("b(20,)\n", b)
b = b.reshape(5, 4)
print("b(5, 4)\n", b)
b = b.reshape(2, 10)
print("b(2, 10)\n", b)

더보기

데이터 타입 변환

# 데이터 타입 변환
print("---데이터 타입 변환---")
c = np.zeros((10,))
print("현재타입\n", c.dtype)
c = c.astype(np.uint8)
print("현재타입\n", c.dtype)

데이터 타입의 경우 openCV관련된 카메라 모듈과의 통신으로 데이터형이 안맞을 경우 인식이 안될수 있음


더보기

스칼라곱

# 스칼라곱
print("---스칼라곱---")
a1 = np.array([1, 2, 3])
a2 = np.array([[1, 2, 3], [4, 5, 6]])
print("a1\n", a1)
print("a2\n", a2)
print("스칼라곱 결과 a1 * a2\n", a1 * a2)  # [1*1+2*2+3*3, 1*2+2*5, 1*3+2*6]
# 스칼라곱 차원오류
# print("---스칼라곱 차원오류---")
# a1 = np.array([1,2,])
# a2 = np.array([[1,2,3],[4,5,6]])
# print("a1\n" ,a1)
# print("a2\n" ,a2)
# print("스칼라곱 결과 a1 * a2\n", a1*a2)

스칼라곱의 경우 차원이 맞아야됨, 브로드캐스팅이 이뤄짐


더보기

내적

# 내적
print("---내적---")
a1 = np.array([1, 2])
a2 = np.array([[1, 2, 3], [4, 5, 6]])
print("a1\n", a1)
print("a2\n", a2)
print("dot연산 a1 dot a2\n", np.dot(a1, a2))  # [1*1+2*4, 1*2+2*5, 1*3+2*6]

ML에서 wx+b연산에 주로 사용함


더보기
# 합
print("---합---")
d = np.array([[1, 2, 3], [4, 5, 6]])
print("d\n", d)
print("axis없을때\n", np.sum(d))
print("axis=0일때\n", np.sum(d, axis=0))
print("axis=1일때\n", np.sum(d, axis=1))

 

 

'라이브러리' 카테고리의 다른 글

라이브러리 - 00. Index  (0) 2021.10.05

+ Recent posts