# 라이브러리 불러오기
import numpy as np
# Numpy 객체 정보를 확인하기 위한 사용자 함수 정의 : 객체타입, 구조, 차원, 데이터타입
def np_print(arr):
text="""
type : {}
shape : {}
dimension : {}
dtype : {}
data : \n {}""".format(type(arr), arr.shape, arr.ndim, arr.dtype, arr)
print(text)
# 1부터 10미만의 범위(지정범위)에서 1씩 증가하는 숫자를 데이터로 가진 3행 3열의 배열
a = np.arange(1, 10).reshape(3, 3)
np_print(a)

# 4이상 13미만의 범위에서 1씩 증가하는 숫자를 데이터로 가진 3행 3열 배열 생성
b = np.arange(4, 13).reshape(3, 3)
np_print(b)

# 10~21까지 3행 4열 형태로 만들기
c = np.arange(10,22).reshape(3,4)
np_print(c)

- 배열 + 배열
- np.add(arr1, arr2)
print(a)
print(b)

# 산술 연산자
a + b

# 구조 다른 배열간의 산술연산시 에러 발생(+)
a + c

### 빼기
- 배열 - 배열
- np.subtract(arr1, arr2)
# 산술연산자
a - b

b - a

# 메서드 활용
np.subtract(b,a)

- 배열 / 배열
- np.divide(arr1, arr2)
# 산술연산자
a / b

b / a

# 메서드
np.divide(a, b)

np.divide(b, a)

- 배열 * 배열
- np.multiply(arr1, arr2)
# 산술연산자
a * b

b * a

np.multiply(a, b)

np.multiply(b, a)

지수(exponent) : 부동 소수점으로 숫자를 표시할 때 거듭제곱을 사용하여 표현.
(예 2.14e+2 = 2.14 x 102 = 214 / 2.98e-8 = 2.98 x 10-8 = 0.0000000298
np.exp(arr) : 밑(base)이 자연상수 e 인 지수함수로 변환(y = e**x)
a

# 지수함수
np.exp(a)


np.sqrt(a)



np.dot(a, b)

print(a)
print(b)

1) 요소
print(a)
print(b)

# 두 배열 요소에 대하여 값이 동일한지를 비교
# 반환 : 각 요소마다의 비교결과(T/F)가 배열로 표현됨
a == b

a != b

# 두 배열 요소에 대해 크기 비교
a < b

# 두 배열이 완전히 일치하는지 여부만 조회
# 하나의 True / False 로 반환