basic numpy

keras ¿¹Á¦¿¡¼­ numpy ¶óÀ̺귯¸®¸¦ ¸¹ÀÌ »ç¿ëÇÏ°í ÀÖ´Ù.
¶óÀ̺귯¸®ÀÇ »ç¿ë¹ý¿¡ ´ëÇؼ­ ¾Ë¾Æº¸°í ³Ñ¾î°£´Ù.

numpy ÀÓÆ÷Æ®´Â ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù.

import numpy as np

¹öÀü Ç¥½Ã
import numpy as np
print('numpy ' + np.__version__)

½ÇÇà °á°ú)
numpy 1.14.5

numpy¿¡¼­ Shape¶õ?

numpyÀÇ  ¹è¿­ ±¸Á¶´Â 'shape'·Î Ç¥ÇöÇÑ´Ù. ¹è¿­ÀÇ ±¸Á¶¸¦ ÆÄÀ̽ã Æ©Çà ÀÚ·áÇüÀ» ÀÌ¿ëÇÏ¿© Á¤ÀÇÇÑ´Ù.

import numpy as np
data = np.array([1, 2, 3])
print(data.shape)

½ÇÇà °á°ú)
(3,)

import numpy as np
data = np.array([(1,2,3), (4,5,6)], dtype = float)
print(data.shape)

½ÇÇà °á°ú)
(2, 3)

import numpy as np

#   1, 2
#   3, 4
#   5, 6
#a = np.array([[1,2], [3,4,], [6,6]]) À̰͵µ µÈ´Ù
a = np.array([(1,2), (3,4,), (6,6)])
print(a.shape);

½ÇÇà °á°ú)
(3, 2)


°¡·Î 128,  ¼¼·Î  128, RGB °ªÀ» °¡Áö´Â À̹ÌÁöÀÇ 3Â÷¿ø ¹è¿­ Á¤ÀÇ´Â ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù.

data = np.zeros((10, 10, 3), dtype=np.uint8)
print(data.shape)

½ÇÇà °á°ú)
(10, 10, 3)

¹è¿­ À妽Ì

¹è¿­¿¡¼­ ƯÁ¤ À妽º ¿µ¿ª¸¸ ÀÐ¾î ¿À´Â°ÍÀ» ½½¶óÀ̽ÌÀ̶ó ÇÑ´Ù.
Ç¥ÇöÀº ¹è¿­À̸§[ Çà, ¿­ ]·Î ù¹ø° ÆĶó¸ÞÅÍ°¡ ÇàÀ̶ó´Â°ÍÀ» ±î¸ÔÁö ¸»ÀÚ.

¿µ¿ªÀº ÄÝ·ÐÀ¸·Î ½ÃÀÛ À妽º¿Í ¸¶Áö¸· À妽º¸¦ ÁöÁ¤ÇÑ´Ù.
¸¶Áö¸· À妽º´Â Æ÷ÇÔÇÏÁö ¾Ê´Â´Ù.

½ÃÀÛ À妽º : ¸¶Áö¸· À妽º
a = data[:2, 1:3]

":2" ó·³ Ç¥Çö Çϸé 0ºÎÅÍ 2¹ø° À妽º ±îÁö(2¹ø° À妽º´Â Æ÷ÇÔ ¾ÈÇÔ)¸¦ ³ªÅ¸³½´Ù.
":" ó·³ Ç¥Çö Çϸé Àüü¸¦ ³ªÅ¸ ³½´Ù.

ƯÁ¤ À妽º¸¸ ÁöÁ¤ÇÏ°í ½Í´Ù¸é ÄÝ·ÐÀ» »ç¿ëÇÏÁö ¾Ê°í À妽º¸¸ ÁöÁ¤ÇÑ´Ù.

b = data[:,  2]

À§ÀÇ Ç¥ÇöÀº ÇàÀº Àüü ¿­Àº 2¹ø° À妽º¸¸ ÁöÁ¤ÇÑ °ÍÀÌ´Ù.

import numpy as np

# 1,  2,  3,  4
# 5,  6,  7,  8
# 9, 10, 11, 12

data = np.array([(1,2,3,4), (5,6,7,8), (9,10,11,12)])

a = data[:2, 1:3]
b = data[:,  2]

print('shape ' , data.shape)
print('a data =================')
print(a)
print('b data =================')
print(b)

½ÇÇà °á°ú)
shape  (3, 4)
a data =================
[[2 3]
 [6 7]]
b data =================
[ 3  7 11]

import numpy as np

a = np.array([1,1,1,1,1])
b = np.array([2,3,4,5,6])

# sqrt( 1/n ¥Ò(b-a)**2 )
# np.sqrt(((b-a)**2).mean())
data = ((b-a)**2).mean()
datasqrt = np.sqrt(data)

print('data mean :', data)
print('data sqrt :', datasqrt)

½ÇÇà °á°ú)
data mean : 11.0
data sqrt : 3.3166247903554

ºÒ¸®¾ð ¹è¿­ À妽Ì

ºÒ¸®¾ð ¹è¿­À» ¸¸µé¾î¼­ ƯÁ¤ Á¶°Ç¿¡ ÇØ´çÇÏ´Â ¹è¿­ À妽º¸¸ ¼±Åà ÇÒ ¼ö ÀÖ´Ù.
¾Æ·¡´Â 5º¸´Ù Å«¼ö¸¸ ÁöÁ¤ÇÏ¿© Ãâ·ÂÇÑ´Ù.

import numpy as np

data = np.array([(1,2,3,4), (5,6,7,8), (9,10,11,12)])

bool_idx = (data > 5)

print(data[bool_idx])
print(bool_idx)

½ÇÇà °á°ú)
[ 6  7  8  9 10 11 12]
[[False False False False]
 [False  True  True  True]
 [ True  True  True  True]]

¹è¿­ ¿¬»ê

¹è¿­ ¿¬»êÀÇ ¸î°¡Áö ¿¹Á¦´Â ´ÙÀ½°ú °°´Ù.

import numpy as np

a = np.array([1,2,3])
b = np.array([10,20,30])

print('a+b: ', a + b)  # np.add(a, b)
print('a-b:', a - b)   # np.subtract(a, b)
print('a*b',  a * b)   # np.multiply(a, b)
print('a / b:',  a / b) # np.divide(a, b)
print('mean:',  np.mean(b))
print('mean1', b.mean())
print('sqrt:',  np.sqrt(a))
print('sum:',  np.sum(b))

½ÇÇà °á°ú)
a+b:  [11 22 33]
a-b: [ -9 -18 -27]
a*b [10 40 90]
a / b: [0.1 0.1 0.1]
mean: 20.0
mean1 20.0
sqrt: [1.         1.41421356 1.73205081]
sum: 60

Æò±Õ Á¦°ö±Ù ¿ÀÂ÷(Root Mean Square Error; RMSE)¸¦ ÆÄÀ̽ãÀ¸·Î Ç¥Çö ÇÏ¸é ´ÙÀ½°ú °°´Ù.


p: ¿¹Ãø°ª
y: ½ÇÁ¦ ÃøÁ¤·®

import numpy as np

a = np.array([1,1,1,1,1])
b = np.array([2,3,4,5,6])

# sqrt( 1/n ¥Ò(b-a)**2 )
# np.sqrt(((b-a)**2).mean())
data = ((b-a)**2).mean()
datasqrt = np.sqrt(data)

print('data mean :', data)
print('data sqrt :', datasqrt)

½ÇÇà °á°ú)
data mean : 11.0
data sqrt : 3.3166247903554

±×·¡ÇÁ·Î Ç¥ÇöÇϱâ

matplotlib ¶óÀ̺귯¸®¸¦ ÀÌ¿ëÇÏ¸é ±×·¡ÇÁ·Î Ç¥Çö ÇÒ¼öµµ ÀÖ´Ù.
linespace ÇÔ¼ö´Â 0ºÎÅÍ 1±îÁö 5°³ÀÇ ¼ö¸¦ ¸¸µç´Ù.
5°³¼ö [0.   0.25 0.5  0.75 1.  ]
import numpy as np
import matplotlib.pyplot as plt

data = np.linspace(0, 1, 5)
plt.plot(data, 'o')
plt.show()

ÆÄÀÌÂü¿¡¼­ ½ÇÇà°á°ú)



3D·Î º¸¿© ÁÙ¼öµµ ÀÖ´Ù.

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

fig = plt.figure()
ax = Axes3D(fig)
X = np.arange(-4, 4, 0.25)
Y = np.arange(-4, 4, 0.25)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)

ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap='hot')

plt.show()

ÆÄÀÌÂü¿¡¼­ ½ÇÇà °á°ú)




Âü°í)
shape ¼³¸í
http://taewan.kim/post/numpy_cheat_sheet/

numpy Æ©Å丮¾ó ¹ø¿ª
http://aikorea.org/cs231n/python-numpy-tutorial/#numpy-math

mplot3d ¿¹Á¦
https://www.labri.fr/perso/nrougier/teaching/matplotlib/