NumPy 함수를 사용하다보면 axis 아규먼트를 사용하는 것이 있습니다.
어떤 의미일까 고민해보다가 적어봅니다.
최초 작성 2019. 11. 7
넘파이 모듈을 임포트 하고 크기 2 x 3 x 4인 넘파이 배열에 0~23까지 숫자를 채웁니다.
변수 a를 출력해보면 다음처럼 배열이 출력됩니다.
바깥쪽 괄호 [] 부터 시작하여 괄호를 기준으로 차원이 2, 3, 4가 됩니다.
가장 바깥쪽 괄호안에 2개의 원소가 존재하며
중간 괄호 안에는 3개의 원소가 존재하고
가장 안쪽 괄호안에는 4개의 원소가 존재한다는 의미입니다.
axis를 명시하지 않으면 배열에 속하는 모든 원소에 대한 합을 구합니다.
axis=0이면 첫번째 괄호가 사라졌을 때 남은 2차원 원소가 하나로 더해집니다.
2차원 배열의 대응하는 원소끼리 더하면 됩니다.
axis=1이면 두번째 괄호가 사라지면서 남는 1차원 원소가 하나로 더해집니다.
예제에선 위에 3개의 1차원 배열의 대응하는 원소끼리 더해서 하나의 1차원 배열이 되고
아래에 3개의 1차원 배열의 대응하는 원소끼리 더해서 하나의 1차원 배열이 됩니다.
axis=2이면 3번째 괄호가 사라지면서 남는 스칼라 원소가 하나로 더해집니다.
예를 들어 0, 1, 2, 3이 모두 더해져서 6이되고 4, 5, 6, 7이 더해져 22가되고 8, 9, 10, 11이 더해져 38이 됩니다.
axis=(0,1)이면 첫번째, 두번째 괄호가 사라지면서 남는 1차원 배열의 대응하는 원소끼리 더해집니다.
예를 들어 0, 4, 8, 12, 16, 20을 더해서 60이 됩니다.
axis = (1,2)이면 두번째, 세번째 괄호가 사라지면서 남는 스칼라가 모두 더해집니다.
아래 예에서 노란색 숫자들이 모두 더해져서 66이 되며
초록색 숫자들이 모두 더해져서 210이 됩니다.
'Python > Numpy' 카테고리의 다른 글
NumPy 전체 배열 출력 (0) | 2021.10.04 |
---|---|
NumPy reshape에 -1을 사용하는 이유 (0) | 2021.10.04 |
두 개의 2차원 넘파이 배열에 0축(axis=0)을 추가하여 하나로 합치기 (0) | 2021.09.30 |
Python에서 OpenCV 임포트시 에러 - ImportError: numpy.core.multiarray failed to import (3) | 2020.11.14 |
NumPy를 사용하여 두 개의 배열을 같은 순서로 무작위 섞기 (0) | 2020.03.19 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!