np.transpose()

numpy.T

  • T 함수(메소드)는 shape의 차원을 뒤바꿔주는 함수이다
  • 2차원의 배열에서는 T와 transpose의 결과가 같지만, 3차원이 넘는 고차원에서는 구분 할 필요가 있다.
  • 특히 컬러이미지는 3차원 이상이기 때문에 transpose 함수를 자주 사용한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
a = np.random.randint(1,20,6).reshape(2,3)
print(a)
# [[18 14 5]
# [ 1 3 18]]

print(a.T)
# [[18 1]
# [14 3]
# [ 5 18]]

print(a.transpose())
# [[18 1]
# [14 3]
# [ 5 18]]

numpy.transpose()

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
a = np.random.randint(1,20,24).reshape(2,3,4)
print(a)
[[[ 4 7 12 14]
[ 6 19 19 14]
[ 4 6 2 12]]

[[ 4 13 14 16]
[ 7 1 19 19]
[10 12 2 6]]]


print(a.T)
[[[ 4 4]
[ 6 7]
[ 4 10]]

[[ 7 13]
[19 1]
[ 6 12]]

[[12 14]
[19 19]
[ 2 2]]

[[14 16]
[14 19]
[12 6]]]

a.transpose(2,1,0)
# 결과는 a.T와 같음
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
a.transpose(1,2,0) 
# 차원 reshape하는 느낌
# 그러나 reshape과 차원빼고는 결과가 전혀 다름을 유의!
array([[[ 4, 4],
[ 7, 13],
[12, 14],
[14, 16]],

[[ 6, 7],
[19, 1],
[19, 19],
[14, 19]],

[[ 4, 10],
[ 6, 12],
[ 2, 2],
[12, 6]]])

#transpose랑 전혀 다름!
a.reshape(3,4,2)
array([[[ 4, 7],
[12, 14],
[ 6, 19],
[19, 14]],

[[ 4, 6],
[ 2, 12],
[ 4, 13],
[14, 16]],

[[ 7, 1],
[19, 19],
[10, 12],
[ 2, 6]]])

a.shape
# (2, 3, 4)
a.T.shape
# (4, 3, 2)
a.transpose(2,1,0)
# (4, 3, 2)

# 2,3,4 -> 4,3,2
a.transpose(1,2,0)

# (3, 4, 2)
# 2,3,4 -> 3,4,2
Author

InhwanCho

Posted on

2022-12-24

Updated on

2022-12-24

Licensed under

Comments