Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 프로그래머스
- Git
- 파이썬 #python #file #i/o #input #output
- 파이썬 #python #가변매개변수 #키워드가변매개변수 #args #kwargs
- 파이썬 #python #filter #map #reduce
- 파이썬 #python #os #os.path #glob
- 파이썬 #python #enumerate
- 파이썬 #python #모듈 #module #import #random #time #calendar #sys
- aws
- 파이썬 #python #docstring
- 파이썬 #python #class #클래스 #상속
- 배포
- 연산자메서드
- 약수 수하기
- 파이썬 #python #lambda #람다
- jsonb
- 민감 정보 관리
- spring boot
- 파이썬 #python #Comprehension
- EC2
- 사용자정의예외
- redis
- aw3
- 파이썬기본문법 #파이썬 #python
- 파이썬 #python #지역함수
- PostgreSQL
- docker
- 파이썬 #python #예외처리 #exception
- 파이썬 #python #함수 #function
- 파이썬 #python #전역변수 #지역변수 #eval
Archives
- Today
- Total
Yeonnnnny
[Numpy] 기본 축의 개념 vs 행렬 연산 시 축의 개념 본문
■ '축'
numpy에서는 다차원 배열의 계산을 간편하게 한다는 큰 장점이 있다. 그런데 행렬을 연산할 때 축의 개념이 본래 알던 축의 개념과는 조금 달라 혼란이 생길 수 있다. 기본적인 행렬의 축의 개념은 아래와 같다.
행은 행렬에서 → 방향이므로 행의 축은 0이다. 열은 ↓ 방향이므로 열의 축은 1이다.
하지만, 다차원 행열 계산에 적합한 numpy에서는 모듈 내 함수에서 축을 가리키는 axis라는 옵션이 존재한다. 그런데 axis는 2차원 행렬 연산( 결합이나 변형) 시에, 행 별 계산을 하고자 할 때는 axis=1, 열별 계산을 할 때는 axis=0이라는 옵션을 걸어줘야 한다. 3차원 행렬에서는 깊이의 계산 시에는 axis=0, 열별 계산 시에는 axis=1, 행별 계산 시에는 axis=2라는 옵션을 줘야한다. 이는 기본적으로 생각하고 있는 행렬의 축의 개념과는 다르기 때문에 유념하여 사용해야 한다. 그런데 이 옵션들은 연산시에 적용되고, 연산을 제외한 배열의 구조 변경 등에서는 원래 축의 개념 (행:0, 열:1)대로 생각해야한다.
■ 2차원 행렬의 축
열 계산 시. axis =0
행 계산 시, axis = 1
■ 3차원 행렬의 축
깊이 계산 시, axis = 0
열 계산 시, axis = 1
행 계산 시. axis =2
import numpy as np
array1 = np.array([[1,2],[3,4]])
print(array1)
print(array1.shape) # 2행 2열
# [[1 2]
# [3 4]]
# (2, 2)
array2 = np.array([[[1,2,3],
[4,5,6]],
[[7,8,9],
[10,11,12]]])
print(array2)
print(array2.shape) # 2행 3열인 배열이 2개
# [[[ 1 2 3]
# [ 4 5 6]]
# [[ 7 8 9]
# [10 11 12]]]
# (2, 2, 3)
print('2차원 배열의 axis=0 기준 합 : ',end='')
print(np.sum(array1,axis=0))
print('2차원 배열의 axis=1 기준 합 : ',end='')
print(np.sum(array1,axis=1))
# 2차원 배열의 axis=0 기준 합 : [4 6]
# 2차원 배열의 axis=1 기준 합 : [3 7]
print('3차원 배열의 axis=0 기준 합 : ')
print(np.sum(array2,axis=0))
# 3차원 배열의 axis=0 기준 합 :
# [[ 8 10 12]
# [14 16 18]]
print('3차원 배열의 axis=1 기준 합 : ')
print(np.sum(array2,axis=1))
# 3차원 배열의 axis=1 기준 합 :
# [[ 5 7 9]
# [17 19 21]]
print('3차원 배열의 axis=2 기준 합 : ')
print(np.sum(array2,axis=2))
# 3차원 배열의 axis=2 기준 합 :
# [[ 6 15]
# [24 33]]
'Python > Numpy' 카테고리의 다른 글
[Numpy] 배열의 변경 (0) | 2023.11.14 |
---|---|
[Numpy] 배열 생성 - 3 (0) | 2023.11.10 |
[Numpy] 배열 생성 - 2 (0) | 2023.11.10 |
[Numpy] 배열 생성 - 1 (0) | 2023.11.10 |