머신러닝

본문 바로가기
사이트 내 전체검색


머신러닝
머신러닝

1. Numpy 소개

페이지 정보

작성자 관리자 댓글 0건 조회 1,299회 작성일 20-01-21 18:31

본문

1. Numpy 소개

Numpy는 과학 계산을 위한 라이브러리로 다차원 배열을 처리하는데 필요한 여러 기능을 제공한다.

 

numpy 설치 

pip3 install numpy

 

numpy배열 

numpy에서 배열은 동일한 타입의 값들을 갖는다.
배열의 차원을 rank라고 한다.

shape : 각차원의 크기를 튜플로 표시한 것

예> 2행, 3열 인 2차원은 배열은 rank는 2이고, shape(2,3)

 

실습1.

import numpy as np

list1 = [1,2,3,4]

a = np.array(list1)

print(a)

print(a.shape)

 

[결과]

[1 2 3 4]
(4,)

 

numpy배열을 생성 

> 파이썬의 리스트를 사용하는 방법 

array() 함수의 인자로 리스트를 넣어 생성한다.

numpy.array([1,2,3])

 

 

 

 

실습2.

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

print(b[0,0])

 

[결과]

[[1 2 3]
 [4 5 6]]
(2, 3)

1​

 

 

> numpy에서 제공하는 함수를 사용하는 방법

 

zeros()함수는 배열에 모두 0을 집어 넣고,
ones()함수는 모두 1을 집어넣는다.,
full()함수는 사용자가 지정한 값을 넣는데 사용,
eye()함수는 대각선으로는 1이고 나머지는 0인 2차원배열을 생성    

range(n) : 0 ~ n-1까지의 숫자를 생성하는 함수
reshape() : 다차원으로 변형하는 함수

 

 

 

실습3.

import numpy as np
aa = np.zeros((2,2))
print(aa)
print(type(aa))

bb = np.ones((2,3))
print(bb)

cc = np.full((2,3), 10)
print(cc)

dd = np.eye((3))
print(dd) 

 

[결과]

[[0. 0.]
 [0. 0.]]
<class 'numpy.ndarray'>
[[1. 1. 1.]
 [1. 1. 1.]]
[[10 10 10]
 [10 10 10]]
[[1. 0. 0.]
 [0. 1. 0.]
 [0. 0. 1.]]

 

실습4.

import numpy as np
aa = np.array(range(20)).reshape((5,4))
print(aa)

bb = np.array(range(15)).reshape((3,5))
print(bb) 

[결과]

[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]
 [12 13 14 15]
 [16 17 18 19]]
[[ 0  1  2  3  4]
 [ 5  6  7  8  9]
 [10 11 12 13 14]]

 

 

numpy 슬라이싱, 인덱싱, 연산

실습5. numpy 슬라이싱

import numpy as np

list=[
  [1,2,3],
  [4,5,6],
  [7,8,9]
]

arr = np.array(list)

a = arr[0:2, 0:2]

print(a)

print("-----------")
b =  arr[1:, 1:]
print(b)

 

[결과]

[[1 2]
 [4 5]]
-----------
[[5 6]
 [8 9]]

 

 

실습6. 정수 인덱싱

import numpy as np

list=[
  [1,2,3,4],
  [5,6,7,8],
  [9,10,11,12] 
]

a = np.array(list)


res = a[[0,2], [1,3]]  # a[0,1], a[2,3] 값을 가져온다.

print(res)

 

[결과]

[ 2 12]

실습7. 부울린 인덱싱(boolean indexing)

import numpy as np
list1=[
  [1,2,3],
  [4,5,6],
  [7,8,9]
]

aa = np.array(list1)

b_arr=np.array([
   [False, True, False],
   [True, False, True],
   [False, True, False]
])

n = aa[b_arr]

print(n)

[결과]

​[2 4 6 8]

 

부울린 인덱싱 배열을 생성할 때 표현식으로 이용하기

 

배열 a에 대해서 짝수인 배열 요소만 True로 지정하겠다 하면

b_arr = (a %2) = 0)

와 같이 한다.

 

실습8.

import numpy as np

list =[
  [1,2,3],
  [4,5,6],
  [7,8,9]
]

arr = np.array(list)

# 배열 arr에 대해 짝수면 True, 홀수면 False
b_arr=(arr % 2 == 0)

print(b_arr)


print(arr[b_arr])

n = arr[arr%2 == 0]

print(n)

 

[결과]

 

[[False  True False]
 [ True False  True]
 [False  True False]]
[2 4 6 8]
[2 4 6 8]

 

numpy 연산

연산자를 이용할 경우에는 +, -, *, /
함수를 사용할 경우에는 add(), substract(), multiply(), divide()
배열 a와 배열 b가 있을 때, a+b는 a[0]+b[0], a[1]+b[1],...와  같은 방식으로 결과를 리턴한다.

 

 

실습9.

 

import numpy as np

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

#c = a+b
c=np.add(a,b)
print(c)

#c = a-b
c = np.subtract(a,b)
print(c)

#c=a*b
c = np.multiply(a,b)
print(c)

#c= c/b
c=np.divide(a,b)
print(c)

 

[결과]

[5 7 9]
[-3 -3 -3]
[ 4 10 18]
[0.25 0.4  0.5 ]

 

numpy에서 vector와 matrix의 product를 구하기 위해서는 dot()함수를 이용한다.

 

실습10.

import numpy as np

list1=[
   [1,2],
   [3,4]
]

list2=[
   [5,6],
   [7,8]
]

a = np.array(list1)
b = np.array(list2)

print("두 matrix에 대한 product 구하기")

product = np.dot(a,b)

print(product)

 

[결과]

두 matrix에 대한 product 구하기
[[19 22]
 [43 50]]

 

 numpy에서는 배열간의 연산을 위한 여러 함수들을 제공하는데,
각배열의 요소를 더하는 함수 sum(), 배열의 요소들을 곱하는 prod()함수
이 함수들은 axis 옵션을 사용한다.  axis 0이면 컬럼끼리 더함, 1이면 행끼리 더함 

 

실습11.

import numpy as np

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

s = np.sum(a)

print(s)

s = np.sum(a, axis=0)
print(s)

s = np.sum(a, axis=1)
print(s)

p = np.prod(a)

print(p)

p = np.prod(a, axis=0)
print(p) 

p = np.prod(a, axis=1)
print(p) 

 

 

[결과]

10
[4 6]
[3 7]
24
[3 8]
[ 2 12]

 

 

댓글목록

등록된 댓글이 없습니다.


개인정보취급방침 서비스이용약관 모바일 버전으로 보기 상단으로

TEL. 063-469-4551 FAX. 063-469-4560 전북 군산시 대학로 558
군산대학교 컴퓨터정보공학과

Copyright © www.leelab.co.kr. All rights reserved.