programing tip

numpy 배열이 비어 있는지 여부를 어떻게 확인할 수 있습니까?

itbloger 2020. 6. 26. 18:54
반응형

numpy 배열이 비어 있는지 여부를 어떻게 확인할 수 있습니까?


numpy 배열이 비어 있는지 여부를 어떻게 확인할 수 있습니까?

다음 코드를 사용했지만 배열에 0이 있으면 실패합니다.

if not self.Definition.all():

이것이 해결책입니까?

if self.Definition == array( [] ):

당신은 항상 .size속성을 볼 수 있습니다 . 그것은되는 정수로 정의 하고, 영 (인 0배열에 요소가 존재하지 않는 경우) :

import numpy as np
a = np.array([])

if a.size == 0:
    # Do something when `a` is empty

http://www.scipy.org/Tentative_NumPy_Tutorial#head-6a1bc005bd80e1b19f812e1e64e0d25d50f99fe2

NumPy의 주요 대상은 동종 다차원 배열입니다. Numpy 치수에서 좌표축이라고합니다. 축 수는 순위입니다. Numpy의 배열 클래스를 ndarray라고합니다. 별명 배열로도 알려져 있습니다. ndarray 객체의보다 중요한 속성은 다음과 같습니다.

ndarray.ndim
배열의 축 수 (차원)입니다. 파이썬 세계에서는 차원의 수를 순위라고합니다.

배열
의 크기를 ndarray.shape . 각 차원의 배열 크기를 나타내는 정수 튜플입니다. n 개의 행과 m 개의 열이있는 행렬의 경우 모양은 (n, m)입니다. 따라서 모양 튜플의 길이는 ndim의 순위 또는 차원 수입니다.

ndarray.size 배열
의 총 요소 수입니다. 이것은 모양 요소의 곱과 같습니다.


그러나 하나의 경고. np.array (None) .size는 1을 반환합니다! a.size np.prod (a.shape)와 같고 np.array (None) .shape는 ()이며 빈 제품은 1이기 때문입니다.

>>> import numpy as np
>>> np.array(None).size
1
>>> np.array(None).shape
()
>>> np.prod(())
1.0

따라서 다음을 사용하여 numpy 배열에 요소가 있는지 테스트합니다.

>>> def elements(array):
    ...     return array.ndim and array.size

>>> elements(np.array(None))
0
>>> elements(np.array([]))
0
>>> elements(np.zeros((2,3,4)))
24

참고 URL : https://stackoverflow.com/questions/11295609/how-can-i-check-whether-the-numpy-array-is-empty-or-not

반응형