IT정보

뒤로가기

[딥러닝] 넘파이(numpy)의 array활용하기

5점
2021-12-07 20:17:46 추천 0

array활용하기



1. 사칙연산


사칙연산을 해보기 위해서 arange함수를 사용하도록 하겠습니다. arange함수는 숫자를 특정 기준부터 특정 기준까지 쭉 나열해주는 함수입니다.


import numpy as np

arr1 = np.arange( 10 ) # 0부터 9까지 값을 갖는 1차원 array

-> array( [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ] )

arr2 = np.arnage( 3, 10 ) #3부터 9까지 값을 갖는 1차원 array

-> array( [ 3, 4, 5, 6, 7, 8, 9 ] )


arr1 * 2

-> array( [ 0, 2, 4, 6, 8, 10, 12, 14, 16, 18 ] )

arr2 + 1

-> array( [4, 5, 6, 7, 8, 9, 10 ] )



▼array의 할당

array에 사칙연산을 해도 그 결과 값은 array로 나오기 때문에 다른 array변수로 할당을 해줄 수 있습니다.

arr3 = arr1 * 2

-> array( [ 0, 2, 4, 6, 8, 10, 12, 14, 16, 18 ] )



2. array간의 연산


array끼리도 연산이 가능합니다. 이때 차원을 맞춰서 살펴보도록 하겠습니다.

1차원의 array들의 경우 대응되는 위치의 값끼리 사칙연산을 합니다. 주의할 점은 array간의 곱셈을 벡터의 곱으로 착각하면 안됩니다. 그저 같은 자리 끼리 곱하는 것으로 생각해야 합니다. (cf. 수학에서는 1차원 array를 벡터로 취급)


2차원의 array들의 경우 대응되는 위치의 값끼리 사칙연산을 하는데 주의할 점은 array간의 곱셈이 수학에서의 행렬곱셈과 달리 그저 대응되는 값끼리 곱하는 것입니다.(cf. 수학에서는 2차원 array를 행렬로 취급) 



3. 통계량


통계량은 자료의 특성을 알려주는 일종의 요약값입니다. 흔히 평균, 표준편차, 최대, 최소 등을 말합니다. array만들어지면 이를 이용하여 통계량을 쉽게 산출해낼 수 있습니다.


평균값 함수는 mean

최댓값 출력 함수는 max

최솟값 출력 함수는 min


np.mean( arr1 )

-> 4.5

np.max( arr1 )

-> 9

np.min( arr1 )

-> 0



4. 자료 순서와 위치


1차원의 경우 한 방향으로 순서를 매길 수 있습니다.

arr5 = np.array( [1, 2, 3] )의 경우 1값은 위치값이 0입니다. 2값은 위치값이 1입니다. 3값은 위치값이 2번 입니다.


2차원의 경우 행 방향과 열 방향으로 순서를 매길 수 있습니다.

arr6 = np.array( [1, 2, 3], [4, 5, 6] )의 경우 1값은 0번째 행 0번째 열, 2값은 0번째 행 1번째 열, 5값은 1번째 행, 1번째 열입니다.



5. 슬라이싱(slicing)


array에서 특정 범위의 값을 찾는 방법을 말합니다. array는 각 값마다 순서를 갖고 있기 때문에 컴퓨터는 array값들의 순서를 0, 1, 2, .... 으로 배정해둡니다. 슬라이싱은 [ ]를 사용합니다.


슬라이싱에서 : 기호를 이용하는데 시작되는위치:끝나는위치를 표현합니다. 이때 끝나는 위치의 값은 포함되지 않습니다. 예를 들어 arr5 = np.array( [1, 2, 3] ) 에서 1~2번째 값까지 필요하다면 위치값은 0, 1, 2로서 arr5[0:2]를 해야만 위치값 2에 해당하는 값인 3을 제외하여 1~2값을 선택하는 것입니다. 


▼1차원일 경우

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

arr5[0:2] #arr5의 1~2번째 값들



▼2차원일 경우

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

arr6[0:1, 1:3] #1행, 2열과 3열

arr6[0:2, 1:2] #1행과 2행, 2열



6. 인덱싱(indexing)


array에서 특정 위치의 값을 찾는 방법을 말합니다. 인덱싱도 [ ] 를 사용합니다.


▼1차원일 경우

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

arr5[ 1 ] #arr5의 2번째 값이므로 2

arr5[ [0, 2] ] #arr5의 1번째, 3번째 값이므로 1과 2 



▼2차원일 경우

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

arr6[ 0,: ] #첫번째 행

arr6[ :, 1 ] #두번째 열

arr6[ 0, 1 ] #첫번째 행, 두번째 열



비밀번호 입력후 수정 혹은 삭제해주세요.


댓글목록

등록된 댓글이 없습니다.
댓글 수정 댓글 수정
0/500 byte
댓글쓰기 댓글쓰기

영문 대소문자/숫자/특수문자 중 2가지 이상 조합, 10자~16자

0/500 byte
평점

위에 보이는 문자를 공백없이 입력하세요. (대소문자구분)

에게만 댓글 작성 권한이 있습니다.