달나라 노트

Python numpy : shape, size (array의 모양과 크기 출력하기) 본문

Python/Python numpy

Python numpy : shape, size (array의 모양과 크기 출력하기)

CosmosProject 2021. 12. 26. 21:25
728x90
반응형

 

 

 

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.size)
print(arr_test.shape)


-- Result
[[1 2 3 4 5]
 [1 2 3 4 5]
 [1 2 3 4 5]]

15
(3, 5)

위 예시를 봅시다.

2차원 array를 만들고 sizeshape attribute를 적용시켰습니다.

 

size attribute는 array에 존재하는 모든 요소의 개수를 알려줍니다.

위 예시의 array는 5개의 요소를 가진 array가 총 3개 들어있는 2차원 array입니다.

 

이것을 좀 더 직관적으로 설명해보면 다음과 같습니다.

1차 array 속에는 3개의 2차 array가 존재.

각각의 2차 array 속에는 5개의 요소가 존재.

따라서 3 * 5 = 15 라는 결과가 나오고 총 15개의 요소가 존재한다는 의미입니다.

 

 

shape attribute는 array의 형태를 알려줍니다.

위 array에서는 (3, 5)로 결과가 나왔는데 아래 해석처럼 여러 가지 형태로 해석할 수 있으나 결과는 동일합니다.

 

해석 1.

1차 array 속에는 3개의 2차 array가 존재.

각각의 2차 array 속에는 5개의 요소가 존재.

-> (3, 5)

 

해석 2.

3개의 행, 5개의 컬럼을 가진 2차원 array

 

 

 

 

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.size)
print(arr_test.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]]]

30
(2, 3, 5)

이제 3차원 array로 넘어갔습니다.

 

마찬가지로 size attribute는 모든 요소의 개수를 나타냅니다.

위 코드에서 1~3차 array주석을 보면서 설명해보겠습니다.

 

1차 array 속에는 2개의 2차 array가 존재

각각의 2차 array 속에는 3개의 3차 array가 존재

각각의 3차 array 속에는 5개의 요소가 존재.

-> 따라서 총 요소 개수는 2 * 3 * 5 = 30개

 

 

shape attribute는 array의 형태를 나타냅니다.

마찬가지로 해석할 수 있습니다.

 

1차 array 속에는 2개의 2차 array가 존재

각각의 2차 array 속에는 3개의 3차 array가 존재

각각의 3차 array 속에는 5개의 요소가 존재.

-> (2, 3, 5)

 

여기서 한가지 팁이 있다면

shape attribute의 결과로 (2, 3) (2, 3, 5)같은 tuple 형태의 값이 반환됩니다.

이 반환되는 tuple의 길이는 array의 dimention을 의미합니다.

 

(2, 3) -> tuple 길이 = 2 -> 따라서 2차원 array

(2, 3, 5) -> tuple 길이 = 3 -> 따라서 3차원 array

 

 

 

 

 

 

728x90
반응형
Comments