Numpy 기초 4편

1. operation

 

기본적인 수학연산 지원 sum,mean,median,var,std 등등 지원

 

median 지원이 인상적

 

np.exp(), np.sqrt(), … 등 지수함수와 제곱근도 지원

 

그림1. 수학연산 예시

 

표준편차는 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. axis=1로 (3,4) array를 sum한 모습

그림2에서 (3,4) array의 원소 합 sum()을 구한건데 axis=1이 shape에서 4를 나타내니까 원소 4개 있는 방향으로 sum을 함

 

그림3. axis=0으로 (3,4) array를 sum한 모습

 

그림3에서 (3,4) array에서 원소 합 sum()을 구한건데 axis=0이 shape에서 3을 나타내니까 원소 3개 있는 방향으로 sum을 함

 

그림4. axis=0,1 방향으로 sum()한 코드

 

그림5. axis=0으로 3차원 tensor를 sum()한 모습

 

그림6. axis=1로 3차원 tensor를 sum()한 모습

 

그림7. 3차원 tensor를 axis=0,1,2 방향으로 sum()한 모습

 

sum() 말고도 다차원 tensor array의 연산의 경우 axis 연산을  지원하는 경우가 많다

 

그림8. 다양한 연산의 axis 연산

 

3. concatenate

 

array를 합치는 함수

 

vstack이 위아래(vertical)로 hstack이 양옆(horizontal)으로

 

np.concatenate() 함수는 axis연산도 가능함

 

그림9. vstack으로 두 array를 합친 모습

 

 

그림10. hstack으로 두 array를 합친 모습

 

그림11. concatenate로 axis=1 연산을 하면 hstack이 된다

 

그림12. concatenate()로 axis=1 연산을 한 모습

 

------------------------------------------------------------------------------------------------------------------------------

 

당연하지만 axis=1로 concatenate 하고 싶을려면 a,b모두 axis=1 축이 있어야함

 

그림13. concatenate로 axis=1 연산을 하는데 newaxis로 새로운 축을 만든 모습

 

원래 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
TAGS.

Comments