Numpy 기초 4편
1. operation
기본적인 수학연산 지원 sum,mean,median,var,std 등등 지원
median 지원이 인상적
np.exp(), np.sqrt(), … 등 지수함수와 제곱근도 지원
표준편차는 std()로 구할 수 있고
median같은 경우는 a.median()이 아니라 np.median(a) 식으로 구해야 에러가 안나는듯
2. axis
연산 실행에서 기준이 되는 축
ndarray의 shape가 (a,b,c,d,e,.....)이면
a는 axis=0 b는 axis=1 c는 axis=2, d는 axis=3, e는 axis=4,.....
그림2에서 (3,4) array의 원소 합 sum()을 구한건데 axis=1이 shape에서 4를 나타내니까 원소 4개 있는 방향으로 sum을 함
그림3에서 (3,4) array에서 원소 합 sum()을 구한건데 axis=0이 shape에서 3을 나타내니까 원소 3개 있는 방향으로 sum을 함
sum() 말고도 다차원 tensor array의 연산의 경우 axis 연산을 지원하는 경우가 많다
3. concatenate
array를 합치는 함수
vstack이 위아래(vertical)로 hstack이 양옆(horizontal)으로
np.concatenate() 함수는 axis연산도 가능함
------------------------------------------------------------------------------------------------------------------------------
당연하지만 axis=1로 concatenate 하고 싶을려면 a,b모두 axis=1 축이 있어야함
원래 b는 axis=0밖에 없었는데 newaxis하면서 axis=1을 만들었음
----------------------------------------------------------------------------------------------------------------
위 사실을 모르고 axis = 0이면 위아래로 붙이고 axis=1이면 양옆으로 붙인다라고 생각했지만
위와 같이 주어진 test array에서 3번째 4번째에 나온 [7,12]와 [10,15]를 붙여 보려고 한다
[7,12,10,15]를 만들려고 하는데
양옆으로 붙이면 된다고 생각해서
axis=0이 붙여지고
axis=1은 에러남
왜 그런가? 생각해보면 당연하다
array([7,12])랑 array([10,15])는 차원이 0차원이어서 axis=0밖에 없어서 그렇다
애초에 ‘axis = 0이면 위아래로 붙이고 axis=1이면 양옆으로 붙인다’ 단순히 외워버리니 실수하는 것.
'프로그래밍 > Numpy' 카테고리의 다른 글
Numpy 기초 6편 (0) | 2021.11.30 |
---|---|
Numpy 기초 5편 (0) | 2021.11.29 |
Numpy 기초 3편 (0) | 2021.11.28 |
Numpy 기초 2편 (0) | 2021.11.27 |
Numpy 기초 1편 (0) | 2021.11.27 |