1Dimension, 2Dimension, 3Dimension

https://webnautes.tistory.com/1176

1.4. 차원 개수와 차원 크기  

numpy.array 함수의 아규먼트로 사용되는 리스트 또는 튜플을 중첩하면  2차원 이상의 배열을 만들 수 있습니다.

1차원 배열을 만들기 위한 아규먼트는 데이터를 원소로 하는 리스트입니다.
[ 1, 2, 3, 4 ]  

2차원 배열을 만들기 위한 아규먼트는 1차원 리스트를 원소로 하는 리스트입니다.
[ [1, 2, 3, 4],  [4, 5, 6, 7],  [8, 9, 10, 11] ]

3차원 배열을 만들기 위한 아규먼트는 2차원 리스트를 원소로 하는 리스트입니다.
[ [[1, 2, 3, 4], [4, 5, 6, 7], [8, 9, 10, 11]], [[12, 13, 14, 15], [16, 17, 18, 19], [20, 21, 22, 23]]  ]


NumPy 배열의 차원 개수와 원소 개수는 ndarray.shape 속성을 사용하여 정의합니다.
shape 속성은 튜플로 출력되는데 원소 개수가 NumPy 배열의 차원 개수이며,  각 원소값이 각 차원의 크기입니다.
차원 개수만 확인할 수 있는 ndarray.ndim 속성도 있습니다.

import numpy as np


# 1차원 NumPy 배열
A = np.array([1, 2, 3, 4])
print("A.ndim = ", A.ndim)  # ndarray.ndim 속성은 배열의 차원 개수를 리턴합니다.
print("A.shape = ", A.shape)  # ndarray.shape 속성은 배열의 각 차원 크기를 튜플로 리턴합니다.
print("A  = ", A)
print("\n")
# 1차원 배열의 경우 차원이 한 개입니다.
# A.ndim =  1
# 첫번째 차원의 크기만 출력됩니다.
# A.shape =  (4,)

# 1차원 배열을 출력해보면 대괄호 사이에 원소가 공백으로 구분되어 첫번째 차원 크기(4개)만큼 출력됩니다.
# A  = [1 2 3 4]


# 2차원 NumPy 배열
B = np.array([ [1, 2, 3, 4], [4, 5, 6, 7], [8, 9, 10, 11] ] )
print("B.ndim = ", B.ndim)
print("B.shape = ", B.shape)
print("B  = \n", B)
print("\n")
# 2차원 배열의 경우 차원이 두 개입니다.
# B.ndim =  2
# 첫번째 차원의 크기, 두번째 차원의 크기 순으로 출력됩니다.
# B.shape =  (3, 4)

# 2차원 배열을 출력해보면 대괄호 사이에 1차원 배열이 줄단위로 구분되어 첫번째 차원 크기(3개)만큼 출력됩니다.
# 1차원 배열에는 두번째 차원 크기(4개)만큼 원소가 포함되어 있습니다.
# B  =
#  [[ 1  2 3 4]
#  [ 4  5 6 7]
#  [ 8  9 10 11]]


# 3차원 NumPy 배열
C = np.array([ [[1, 2, 3, 4], [4, 5, 6, 7], [8, 9, 10, 11]], [[12, 13, 14, 15], [16, 17, 18, 19], [20, 21, 22, 23]]  ])
print("C = \n", C)
print("C.ndim = ", C.ndim)
print("C.shape = ", C.shape)
# 3차원 배열의 경우 차원이 세 개입니다.
# C.ndim =  3
# 첫번째 차원의 크기, 두번째 차원의 크기, 세번째 차원의 크기 순으로 출력됩니다.
# C.shape =  (2, 3, 4)

# 3차원 배열을 출력해보면 대괄호에 두 개의 2차원 배열이 빈 줄로 구분되어 첫번째 차원 크기(2개)만큼 출력됩니다.
# 2차원 배열에는 각각 두번째 차원 크기(3개)만큼 1차원 배열이 줄단위 구분으로 포함되어 있습니다.
# 1차원 배열에는 각각 세번째 차원 크기(4개)만큼 원소가 포함되어 있습니다.
#
# C =
#  [[[ 1  2 3 4]
#   [ 4 5  6 7]
#   [ 8 9 10 11]]
#
#  [[12 13 14 15]
#   [16 17 18 19]
#   [20 21 22 23]]]

위 예에서 언급한 ndim, shape 외에도 NumPy 배열의 정보를 확인할 수 있는 속성들이 있습니다.
나머지 속성은 다음 링크에서 확인하세요.

댓글

이 블로그의 인기 게시물

About AActor!!! "UObject" has no member "BeginPlay"

UNREAL Android build information

C++ 생성자 위임 (delegating constructor)