[Data Handling] Numpy의 axis 복습
10053 단어 머신러닝을 위한 파이썬넘파이머신러닝파이썬넘파이
팀원들과 스터디를 진행하다가 axis에 관한 질문이 나와서 다시 한 번 정리해보았다.
axis
- 모든 operation function을 실행할 때, 기준이 되는 dimension 축
- 새로 생기는 것이 0이 됨
1. axis=0 (index)
- 행 방향으로 동작 ➡
- 작업 결과가 행으로 나타남
2. axis=1 (columns)
- 열 방향으로 동작 ⬇
- 작업 결과가 열로 나타남
import numpy as np
import pandas as pd
test_array = np.arange(1, 13).reshape(3, 4)
test_array
1. axis=0 (index)
- 행 방향으로 동작 ➡
- 작업 결과가 행으로 나타남
2. axis=1 (columns)
- 열 방향으로 동작 ⬇
- 작업 결과가 열로 나타남
import numpy as np
import pandas as pd
test_array = np.arange(1, 13).reshape(3, 4)
test_array
array([[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12]])
df = pd.DataFrame(
{'name': ['KIM', 'LEE', 'SMITH','BROWN', 'MILLER'],
'age': [24, 32, 43, 24, np.nan],
'height': [178, 168, 171, 185, 176],
'sex': ['M', 'F', 'F', 'M', 'F']})
df
name | age | height | sex | |
---|---|---|---|---|
0 | KIM | 24.0 | 178 | M |
1 | LEE | 32.0 | 168 | F |
2 | SMITH | 43.0 | 171 | F |
3 | BROWN | 24.0 | 185 | M |
4 | MILLER | NaN | 176 | F |
axis 1을 기준으로 요소들의 합
- 1 + 2 + 3 + 4 = 10
- 5 + 6 + 7 + 8 = 26
- 9 + 10 + 11 + 12 = 42
test_array.sum(axis=1)
array([10, 26, 42])
axis 1을 기준으로 drop
df.drop(['age', 'height'], axis=1)
name | sex | |
---|---|---|
0 | KIM | M |
1 | LEE | F |
2 | SMITH | F |
3 | BROWN | M |
4 | MILLER | F |
axis 0을 기준으로 요소들의 합
- 1 + 5 + 9 = 15
- 2 + 6 + 10 = 18
- 3 + 7 + 11 = 21
- 4 + 8 + 12 = 24
test_array.sum(axis=0)
array([15, 18, 21, 24])
axis 0을 기준으로 drop
df.drop([1,2], axis=0)
name | age | height | sex | |
---|---|---|---|---|
0 | KIM | 24.0 | 178 | M |
3 | BROWN | 24.0 | 185 | M |
4 | MILLER | NaN | 176 | F |
third - order tensor
third_order_tensor = np.array([test_array, test_array, test_array])
third_order_tensor
array([[[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12]],
[[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12]],
[[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12]]])
third_order_tensor.sum(axis=2)
array([[10, 26, 42],
[10, 26, 42],
[10, 26, 42]])
third_order_tensor.sum(axis=1)
array([[15, 18, 21, 24],
[15, 18, 21, 24],
[15, 18, 21, 24]])
third_order_tensor.sum(axis=0)
array([[ 3, 6, 9, 12],
[15, 18, 21, 24],
[27, 30, 33, 36]])
Author And Source
이 문제에 관하여([Data Handling] Numpy의 axis 복습), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ssongplay/Data-Handling-Numpy의-axis-복습저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)