1. Numpy 소개
페이지 정보
작성자 관리자 댓글 0건 조회 2,003회 작성일 20-01-21 18:31본문
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]
댓글목록
등록된 댓글이 없습니다.