Updated:

import numpy as np

6.1. 삼각함수, 지수함수, 로그함수

상수

  • np.pi: 원주율
  • np.e: 자연상수

삼각함수

  • np.deg2rad(x): degree를 radian 값으로 변경함
  • np.rad2deg(x): radian 값을 degree로 변경함
  • np.sin(x), np.cos(x), np.tan(x): 삼각함수 / radian 값을 사용해야 정확하게 나오기 때문에 np.deg2rad() 메소드도 보통 같이 이용한다.
  • np.sinh(x), np.cosh(x), np.tanh(x): 쌍곡선함수

제곱, 제곱근, 세제곱근

  • np.square(x), x ** 2 : 제곱
  • np.sqrt(x), x ** (1/2) : 제곱근
  • np.cbrt(x), x ** (1/3) : 세제곱근

지수함수

  • np.reciprocal(x), x ** (-1) : 분수함수
  • np.power(a,x), a ** x : 밑이 a인 지수함수 표현
  • np.exp(x): 밑이 자연상수인 지수함수

로그함수

  • np.log(x): 밑이 자연상수인 로그함수
  • np.log(x) / np.log(num) : 밑이 num인 로그함수
PI = np.pi
e = np.e

print("PI:",PI, "e:",e)
PI: 3.141592653589793 e: 2.718281828459045
deg = np.array([30,45,60,90,180,270,360])
x = np.deg2rad(deg)

sin = np.sin(x)
cos = np.cos(x)
tan = np.tan(x)

print("sin(x):",sin.round(2))
print("cos(x):",cos.round(2))
print("tan(x):",tan.round(2))
sin(x): [ 0.5   0.71  0.87  1.    0.   -1.   -0.  ]
cos(x): [ 0.87  0.71  0.5   0.   -1.   -0.    1.  ]
tan(x): [ 5.80000000e-01  1.00000000e+00  1.73000000e+00  1.63312394e+16
 -0.00000000e+00  5.44374645e+15 -0.00000000e+00]
x = np.random.uniform(0,5,(5,))

print("x**2:",x**2)
print("square(x):",np.square(x),'\n')

print("x**(1/2):",x**(1/2))
print("sqrt(x):",np.sqrt(x),'\n')

print("x**(1/3):",x**(1/3))
print("cbrt(x):",np.cbrt(x),'\n')
x**2: [ 0.02335131 22.27911182  4.58313967 12.14843097  0.17909837]
square(x): [ 0.02335131 22.27911182  4.58313967 12.14843097  0.17909837]
x**(1/2): [0.39091092 2.17257345 1.46315647 1.86693865 0.65053835]
sqrt(x): [0.39091092 2.17257345 1.46315647 1.86693865 0.65053835]
x**(1/3): [0.53462821 1.67745024 1.28882469 1.51618908 0.75078445]
cbrt(x): [0.53462821 1.67745024 1.28882469 1.51618908 0.75078445]
a = np.random.uniform(0,5,(5,))
x = np.random.uniform(0,5,(5,))

print("1/x:",(1/x).round(3))
print("reciprocal(x):",np.reciprocal(x).round(3),'\n')

print("a ** x:",(a**x).round(3))
print("power(a,x):",np.power(a,x),'\n')

print("e ** x:",(np.e ** x).round(3))
print("exp(x):",np.exp(x).round(3))

1/x: [1.36  0.775 0.643 0.257 0.237]
reciprocal(x): [1.36  0.775 0.643 0.257 0.237]

a ** x: [  2.661   3.723   7.326 364.485   0.823]
power(a,x): [  2.66103769   3.72326252   7.32572595 364.48456648   0.82296119]

e ** x: [ 2.086  3.635  4.731 48.658 67.947]
exp(x): [ 2.086  3.635  4.731 48.658 67.947]
a = np.random.uniform(2,10,(5,))
b = np.random.uniform(2,10,(5,))

loga = np.log(a)
logb = np.log(b)
logab = np.log(a*b)

print("loga + logb:",loga + logb)
print("logab:",logab,'\n')
loga + logb: [1.65438164 3.84383101 3.32686823 3.08913281 3.1804505 ]
logab: [1.65438164 3.84383101 3.32686823 3.08913281 3.1804505 ]

6.2. 벡터의 내적, 행렬곱

  • np.dot(x,y): x와 y의 내적 결과
  • np.matmul(a,b): a와 b의 행렬 곱을 나타냄
a = np.random.randint(1,5,(3,))
b = np.random.randint(1,5,(3,))

m1 = np.random.randint(1,12,(3,4))
m2 = np.random.randint(1,12,(4,3))

print("a:",a)
print("b:",b)
print("dot:",np.dot(a,b),'\n')

print("m1:\n",m1)
print("m2:\n",m2)
print("matrix multiplication:\n",np.matmul(m1,m2))
a: [3 4 2]
b: [2 4 3]
dot: 28

m1:
 [[4 2 2 2]
 [2 1 5 8]
 [4 5 9 5]]
m2:
 [[ 3 11  3]
 [ 7  9  1]
 [ 9  1  7]
 [ 8  6  3]]
matrix multiplication:
 [[ 60  76  34]
 [122  84  66]
 [168 128  95]]

Leave a comment