numpy의 축 (축) 이해
axis란?
다차원 배열을 다루는 numpy에서는 axis(축)를 제대로 이해해 두는 것이 중요합니다.
예를 들어, 배열의 합계를 구하는
numpy.sum()
를 생각해 봅시다.단순한 스칼라나 1차원 배열이라면 축을 생각할 필요도 없이 모든 값을 합하면 됩니다만, 다차원 배열의 경우 어느 축을 따라 합계하면 좋을지를 의식할 필요가 있습니다. 있습니다.
numpy.sum(a, axis)
numpy의 sum()은 첫 번째 인수 a에 배열을 지정하고 두 번째 인수에는 axis(축)를 지정합니다.이 axis에 따라 요소를 더해 가는 것이군요.
2차원 배열의 축
우선은 알기 쉬운 2차원의 배열을 예로 합니다.
2차원 배열에서 행 방향은 axis=0, 열 방향은 axis=1입니다.
Z = np.array([[0,1],
[2,3]])
print("axis=0 ->", sum(Z,0))
print("axis=1 ->", sum(Z,1))
실행 결과
axis=0 -> [2 4]
axis=1 -> [1 5]
또한 axis에 아무것도 지정하지 않으면 모든 요소의 합계 값(스칼라)이 됩니다.
Z = np.array([[0,1],
[2,3]])
print(sum(Z))
실행 결과
6
3차원 배열의 축
다음으로 3차원 배열을 생각해 봅시다.
3차원 배열에서는 axis=0이 깊이 방향, axis=1이 행 방향, axis=2가 열 방향이 됩니다.
Z = np.array([[[0,1],
[2,3]],
[[4,5],
[6,7]]])
print("axis=0")
print(sum(Z,0))
print("----")
print("axis=1")
print(sum(Z,1))
print("----")
print("axis=2")
print(sum(Z,2))
실행 결과
axis=0
[[ 4 6]
[ 8 10]]
----
axis=1
[[ 2 4]
[10 12]]
----
axis=2
[[ 1 5]
[ 9 13]]
axis=-1은 무엇을 나타내는가?
axis=-1이면 마지막 축 방향을 나타냅니다. 즉, 3차원 배열이라면 axis=2, 2차원 배열이라면 axis=1과 같습니다.
Z = np.array([[[0,1],
[2,3]],
[[4,5],
[6,7]]])
print("axis=2")
print(sum(Z,2))
print("----")
print("axis=-1")
print(sum(Z,-1))
실행 결과
axis=2
[[ 1 5]
[ 9 13]]
----
axis=-1
[[ 1 5]
[ 9 13]]
같은 결과가 되었네요.
Reference
이 문제에 관하여(numpy의 축 (축) 이해), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/konitech913/items/864b8d6348fe6bd2019c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)