반응형
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 |
Tags
- Redshift
- Python
- numpy
- SQL
- Mac
- PySpark
- PANDAS
- google apps script
- Google Spreadsheet
- c#
- PostgreSQL
- Tkinter
- array
- gas
- hive
- Excel
- dataframe
- Kotlin
- Github
- math
- Google Excel
- Apache
- django
- 파이썬
- string
- Java
- list
- GIT
- matplotlib
Archives
- Today
- Total
달나라 노트
Python numpy : T (numpy array transpose, array 행/열 바꾸기) 본문
Python/Python numpy
Python numpy : T (numpy array transpose, array 행/열 바꾸기)
CosmosProject 2021. 12. 27. 12:05728x90
반응형
numpy에서 T attribute는 numpy array를 transpose해줍니다.
좀 직관적으로 이해하려면 흔히 말하는 행과 열을 바꿔준다는 느낌으로 받아들이면 될 것 같습니다.
아래 예시를 봅시다.
import numpy as np
arr_test = np.array(
[ # 1차 array
[1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5] # 2차 array
]
)
print(arr_test)
print(arr_test.shape)
arr_test_t = arr_test.T
print(arr_test_t)
print(arr_test_t.shape)
-- Result
[[1 2 3 4 5]
[1 2 3 4 5]
[1 2 3 4 5]]
(3, 5)
[[1 1 1]
[2 2 2]
[3 3 3]
[4 4 4]
[5 5 5]]
(5, 3)
원래 arr_test는 [1, 2, 3, 4, 5]가 총 3개 있는 2차 array입니다.
즉, 3개의 행이 있으며, 5개의 열이 있는 형태라는 것이죠.
이것에 T(transpose) attribute를 적용한 결과를 보면
총 행과 열이 바뀌어서 5행, 3열의 형태가 되었습니다.
그래서 transpose 전/후의 shape의 결과를 보면 각각 (3, 5) / (5, 3)으로 transpose 전, 후에 행/열이 바뀌므로
transpose의 결과도 반전되었음을 알 수 있습니다.
이것을 DataFrame으로 바꿔서 좀 더 직관적으로 알아봅시다.
import numpy as np
import pandas as pd
arr_test = np.array(
[ # 1차 array
[1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5] # 2차 array
]
)
df_arr_test = pd.DataFrame(arr_test)
print(df_arr_test)
arr_test_t = arr_test.T
df_arr_test_t = pd.DataFrame(arr_test_t)
print(df_arr_test_t)
-- Result
0 1 2 3 4
0 1 2 3 4 5
1 1 2 3 4 5
2 1 2 3 4 5
0 1 2
0 1 1 1
1 2 2 2
2 3 3 3
3 4 4 4
4 5 5 5
pandas의 DataFrame으로 바꿔서 보니 행/열이 바뀐다는 것이 어떤 형태인지 좀 더 보기 쉬울겁니다.
import numpy as np
arr_test = np.array(
[ # 1차 array
[ # 2차 array
[1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5] # 3차 array
],
[ # 2차 array
[1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5] # 3차 array
],
]
)
print(arr_test)
print(arr_test.shape)
arr_test_t = arr_test.T
print(arr_test_t)
print(arr_test_t.shape)
-- Result
[[[1 2 3 4 5]
[1 2 3 4 5]
[1 2 3 4 5]]
[[1 2 3 4 5]
[1 2 3 4 5]
[1 2 3 4 5]]]
(2, 3, 5)
[[[1 1]
[1 1]
[1 1]]
[[2 2]
[2 2]
[2 2]]
[[3 3]
[3 3]
[3 3]]
[[4 4]
[4 4]
[4 4]]
[[5 5]
[5 5]
[5 5]]]
(5, 3, 2)
T attribute는 3차원 배열에도 사용할 수 있습니다.
그 결과는 위와 같습니다.
3차원 배열부터는 단순히 행/열을 바꿔준다는 개념으로 이해하기가 쉽지는 않기 때문에 위처럼 변경이 된다 라고 알고 있으면 될 것 같습니다.
또한 transpose 전/후의 shape 결과를 보면 shape의 결과가 반전되었음을 볼 수 있습니다.
(2, 3, 5) <-> (5, 3, 2)
728x90
반응형
'Python > Python numpy' 카테고리의 다른 글
Comments