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 ] #첫번째 행, 두번째 열
댓글목록