넘파이 연산 중 sum 함수에서 axis 파라미터의 default 값은 None 이다.
그 의미는 axis를 지정하지 않으면 numpy array 안의 모든 요소를 더한 값이 나온다는 것이다.
sum 함수(default)
z = np.arange(1, 11).reshape(2, 5)
print(z)
# 출력
[[ 1 2 3 4 5]
[ 6 7 8 9 10]]
먼저, 1부터 10까지 2행 5열의 2차원 배열을 가진 z를 생성한다.
생성된 z에 sum 함수를 적용해 그 출력을 확인하면
print(np.sum(z))
# 출력
55
모든 요소의 값을 더하여 출력값이 나온다.
sum 함수(axis=n)
이제, axis 파라미터를 적용한 값을 확인해보자.
sum1 = np.sum(z, axis=0)
sum2 = np.sum(z, axis=1)
sum3 = np.sum(z, axis=-1)
print(sum1, sum1.shape)
print(sum2, sum2.shape)
print(sum3, sum3.shape)
# 출력
[ 7 9 11 13 15] (5,)
[15 40] (2,)
[15 40] (2,)
적용한 axis 파라미터 별로 다른 값을 출력하는 것을 확인할 수 있다.
간단하지만 헷갈리는 부분이다.
sum 함수에서 axis(축)는 각 배열의 차원에 해당되는 index이다.
axis=0에 대하여 sum을 하라는 것은 0번 축 혹은 차원이 없어지는 방향으로 원소들을 모두 더하라는 것이다.
즉, 위에서 sum1의 경우, z[0,:]+z[1,:]의 연산을 하라는 의미이고,
sum2의 경우에는 z[:,0]+z[:,1]+z[:,2]+z[:,3]+z[:,4]의 연산을 하라는 의미이다.
그럼 설명한 의미와 결과가 동일한지 코드로 확인해보자.
# sum1(axis=0)
print(z[0,:] + z[1,:])
# sum2(axis=1)
print(z[:,0] + z[:,1] + z[:,2] + z[:,3] + z[:,4])
# 출력
[7 9 11 13 15]
[15 40]
'Python > Build setting' 카테고리의 다른 글
[Numpy]넘파이 shape 변경 (0) | 2022.08.30 |
---|---|
[Numpy]넘파이 연산(Broadcasting) (1) | 2022.08.30 |
[Numpy]넘파이 연산 (0) | 2022.08.29 |
[Numpy]indexing(boolean indexing, fancy indexing) (0) | 2022.08.29 |
[Numpy]넘파이 indexing과 slicing의 차이 (0) | 2022.08.29 |
댓글