Numpy.transpose 함수

chanykim·2022년 6월 16일
0

배열의 전치를 원하는 방향으로 바꿔줍니다.

3차원 배열

a = np.arange(24).reshape(2,3,4)
b = a.transpose(2, 1, 0) #1번째
b = a.transpose(1, 2, 0) #2번째
print(a)
print(b)
# a 출력
[[[ 0  1  2  3]
  [ 4  5  6  7]
  [ 8  9 10 11]]

 [[12 13 14 15]
  [16 17 18 19]
  [20 21 22 23]]]
axis0=2
axis1=3
axis2=4

1, 2, 0은 2, 3, 4를 4, 3, 2 shape으로 만듭니다. (3x2행렬 4개)

# 첫번째 b 출력
[[[ 0 12]
  [ 4 16]
  [ 8 20]]

 [[ 1 13]
  [ 5 17]
  [ 9 21]]

 [[ 2 14]
  [ 6 18]
  [10 22]]

 [[ 3 15]
  [ 7 19]
  [11 23]]]
axis2=4
axis1=3
axis0=2

1, 2, 0은 2, 3, 4를 3, 4, 2 shape으로 만듭니다. (4x2행렬 3개)

# 두번째 b 출력
[[[ 0 12]
  [ 1 13]
  [ 2 14]
  [ 3 15]]

 [[ 4 16]
  [ 5 17]
  [ 6 18]
  [ 7 19]]

 [[ 8 20]
  [ 9 21]
  [10 22]
  [11 23]]]
axis1=3
axis2=4
axis0=2

4차원 배열

a = np.arange(24).reshape(1,2,3,4)
b = a.transpose(3, 2, 1, 0)
print(a)
print(b)
# a 출력
[[[ 0  1  2  3]
  [ 4  5  6  7]
  [ 8  9 10 11]]

 [[12 13 14 15]
  [16 17 18 19]
  [20 21 22 23]]]
axis0=1
axis1=2
axis2=3
axis3=4
1x2=2개의 3x4행렬
# b 출력
[[[[ 0]
   [12]]

  [[ 4]
   [16]]

  [[ 8]
   [20]]]


 [[[ 1]
   [13]]

  [[ 5]
   [17]]

  [[ 9]
   [21]]]


 [[[ 2]
   [14]]

  [[ 6]
   [18]]

  [[10]
   [22]]]


 [[[ 3]
   [15]]

  [[ 7]
   [19]]

  [[11]
   [23]]]]
axis3=4
axis2=3
axis1=2
axis0=1
4x3=12개의 2x1행렬
a = np.arange(24).reshape(2,3,4,1)
b = a.transpose(3, 2, 1, 0)
print(a)
print(b)
# a 출력
[[[[ 0]
   [ 1]
   [ 2]
   [ 3]]

  [[ 4]
   [ 5]
   [ 6]
   [ 7]]

  [[ 8]
   [ 9]
   [10]
   [11]]]


 [[[12]
   [13]
   [14]
   [15]]

  [[16]
   [17]
   [18]
   [19]]

  [[20]
   [21]
   [22]
   [23]]]]
axis0=2
axis1=3
axis2=4
axis3=1
2x3=6개의 4x1행렬
# b 출력
[[[[ 0 12]
   [ 4 16]
   [ 8 20]]

  [[ 1 13]
   [ 5 17]
   [ 9 21]]

  [[ 2 14]
   [ 6 18]
   [10 22]]

  [[ 3 15]
   [ 7 19]
   [11 23]]]]
axis3=1
axis2=4
axis1=3
axis0=2
1x4=4개의 3x2행렬
profile
오늘보다 더 나은 내일

0개의 댓글