생성함수
array 생성하기
다음은 numpy에서 array함수를 이용해서 배열을 만들겠습니다.
1차원 배열과 2차원 배열은 다음과 같이 생성할 수 있습니다.
lst_1d = np.array([1,2,3,4])
print(lst_1d)
# 출력 값
# [1 2 3 4]
lst_2d = np.array([[1,2,3],[4,5,6]])
print(lst_2d)
# 출력 값
# [[1 2 3]
# [4 5 6]]
배열의 모양을 확인하는 shape함수
다음은 numpy 배열을 확인하는 shape 함수입니다. 사용은 다음과 같이합니다.
print(lst_1d.shape)
print(lst_2d.shape)
# 출력 값
# (4,)
# (2, 3)
파이썬에는 range Numpy에는 arange
다음은 파이썬에서 range로 list를 생성하듯 numpy에서 arange를 이용해서 배열을 생성하겠습니다.
arange()사이에 숫자를 하나만 입력하면 0부터 N미만의 값들을 리스트로 만들어 줍니다.
lst = np.arange(10)
print(lst)
# 출력 값
# [0 1 2 3 4 5 6 7 8 9]
다음은 두개의 숫자를 입력하겠습니다. arange(N,M)이라고 하면 N이상 M미만의 값들을 리스트로 만들어 줍니다.
lst2 = np.arange(10,20)
print(lst2)
# 출력 값
# [10 11 12 13 14 15 16 17 18 19]
마지막으로 세개의 숫자를 입력하겠습니다. arange(x,y,z)이라고 하면 x이상 y미만인데 step을 z값으로 지정해줍니다. 예시는 다음과 같습니다.
lst3 = np.arnage(0,11,2)
print(lst3)
# 출력 값
# [0 2 4 6 8 10]
0이나 1로 array를 만들어 주는 np.ones(), np.zeros()
shape(4,5)이고 0으로 가득찬 배열을 만들려면 다음과 같이 입력합니다.
lst = np.zeros((4,5))
print(lst)
# 출력 값
# [[0. 0. 0. 0. 0.]
# [0. 0. 0. 0. 0.]
# [0. 0. 0. 0. 0.]
# [0. 0. 0. 0. 0.]]
마찬가지로 shape(2,3,4)이고 1로 가득찬 배열을 만들려면 다음과 같이 입력합니다.
lst2 = np.ones((2,3,4))
print(lst2)
# 출력 값
# [[[1. 1. 1. 1.]
# [1. 1. 1. 1.]
# [1. 1. 1. 1.]]
# [[1. 1. 1. 1.]
# [1. 1. 1. 1.]
# [1. 1. 1. 1.]]]
np.empty( )와 np.full( )
다음은 empty()와 full()입니다. 먼저 empty는 초기화 되지 않은 값들로 배열을 만들어주는데 메모리를 지정해 주지 않아서 쓰레기 값이 출력될 수도 있습니다.
shape(2,4)이고 empty인 array를 만드려고 하면 다음과 같이 입력합니다.
lst = np.empty((2,4))
print(lst)
# 출력 값
# [[ 30.2 24.2 365. 24.2 ]
# [ 30.2 241.64 365. 241.64]]
다음은 full입니다. 정해진 숫자로 가득 채울때 사용합니다.
예를 들면 shape(1,4,5)인 배열을 100이라는 숫자로 가득 채우려면 다음과 같이 입력할 수 있습니다.
lst2 = np.full((2,4,5),100)
print(lst2)
# 출력 값
# [[[100 100 100 100 100]
# [100 100 100 100 100]
# [100 100 100 100 100]
# [100 100 100 100 100]]
# [[100 100 100 100 100]
# [100 100 100 100 100]
# [100 100 100 100 100]
# [100 100 100 100 100]]]
단위 행열을 만들어주는 np.eye( )
다음은 단위 행열을 만들어주는 eye(N)입니다. N*N의 단위 행열을 만들어줍니다.
예를 들면 4*4의 단위 행열을 만들고 싶으면 다음과 같은 코드를 입력하면됩니다.
eye_lst = np.eye(4)
print(eye_lst)
# 출력 값
# [[1. 0. 0. 0.]
# [0. 1. 0. 0.]
# [0. 0. 1. 0.]
# [0. 0. 0. 1.]]
등 간격의 행열을 만들어 주는 linspace( )
다음은 같은 간격의 행열을 만들어주는 linspace( )입니다.
안에 들어갈 것은linspace(start,end,step,dtype=자료형)이고 자료형은 생략할 수 있습니다.
만약 0부터 15까지 동일한 간격으로 5개의 값을 가지는 행열을 만들기 위한 코드는 다음과 같습니다.
x_lst = np.linspace(0,15,5)
print(x_lst)
# 출력 값
[ 0. 3.75 7.5 11.25 15. ]
array의 형태, 차원을 바꿔주는 reshape()
다음은 행열의 형태 및 차원을 바꿔주는 reshape()함수입니다. 주의해야할 사항은 배열안에 있는 데이터의 개수가 reshape을 해주어도 갯수가 같아야 합니다.
다음과 같은 행열을 2*3*4로 바꿔주겠습니다.
x = np.arange(1,25)
print(x)
print(x.shape)
# 출력 값
# [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24]
# (24,)
reshape을 위한 코드
x = x.reshape(2,3,4)
print(x)
print(x.shape)
# 출력 값
# [[[ 1 2 3 4]
# [ 5 6 7 8]
# [ 9 10 11 12]]
# [[13 14 15 16]
# [17 18 19 20]
# [21 22 23 24]]]
# (2,3,4)
만약 갯수가 다를 경우
x = x.reshape(1,2,3)
print(x)
# 오류 문구
# ValueError: cannot reshape array of size 24 into shape (1,2,3)
# 라는 오류 메시지가 나옵니다.
'Data·AI > Numpy' 카테고리의 다른 글
Numpy 시작하기 (0) | 2020.07.30 |
---|
댓글