numpy 배열이 비어 있는지 확인하려면 어떻게 해야 합니까?
numpy 배열이 비어 있는지 확인하려면 어떻게 해야 합니까?
다음 코드를 사용했지만 어레이에 0이 포함되어 있으면 실패합니다.
if not self.Definition.all():
이게 해결책인가요?
if self.Definition == array([]):
언제든지 볼 수 있습니다..size
기여하다.이는 정수로 정의되며 0입니다.0
배열에 요소가 없는 경우:
import numpy as np
a = np.array([])
if a.size == 0:
# Do something when `a` is empty
https://numpy.org/devdocs/user/quickstart.html (802.04.08)
NumPy의 주요 객체는 동종 다차원 배열입니다.이것은 음이 아닌 정수 튜플에 의해 색인화된 모든 동일한 유형의 요소(일반적으로 숫자)의 표입니다.NumPy 치수는 축이라고 부릅니다. (...) NumPy의 배열 클래스는 ndarray라고 불립니다. (...) ndarray 객체의 더 중요한 속성은 다음과 같습니다.
ndarray.ndim
배열의 축 수(치수)입니다.ndarray.모양.
배열의 치수이것은 각 차원에서의 배열 크기를 나타내는 정수 튜플입니다.행과 열이 n개이고 열이 m개인 행렬의 경우 모양은 (n,m)이 됩니다.따라서 형상 튜플의 길이는 축의 수(ndim)입니다.ndarray.size 배열의 총 요소 수입니다.이것은 모양 요소의 곱과 같습니다.
단 한 가지 주의사항이 있습니다.np.array(없음)에 주의해 주세요.size는 1을 반환합니다!이는 a.size가 np.prod(a.shape), np.array(None)와 동일하기 때문입니다.모양은 (), 빈 제품은 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
어레이가 다음과 같은지 확인해야 하는 이유는 무엇입니까?empty
어레이는 리스트와 같은 확장 또는 축소되지 않습니다.'빈' 어레이에서 시작하여 다음 스토리지로 확장np.append
는 빈번한 초보 에러입니다.
에서 목록 사용if alist:
는 부울값에 의존합니다.
In [102]: bool([])
Out[102]: False
In [103]: bool([1])
Out[103]: True
다만, 어레이에서도 같은 처리를 실시하면, 다음과 같은 결과가 됩니다(버전 1.18).
In [104]: bool(np.array([]))
/usr/local/bin/ipython3:1: DeprecationWarning: The truth value
of an empty array is ambiguous. Returning False, but in
future this will result in an error. Use `array.size > 0` to
check that an array is not empty.
#!/usr/bin/python3
Out[104]: False
In [105]: bool(np.array([1]))
Out[105]: True
그리고.bool(np.array([1,2])
불명확한 모호성 오류를 생성합니다.
편집하다
인정된 답변은 시사하는 바가 있다.size
:
In [11]: x = np.array([])
In [12]: x.size
Out[12]: 0
하지만 저(및 다른 대부분의 경우)는shape
그 이상size
:
In [13]: x.shape
Out[13]: (0,)
또 다른 유리한 점은 이 '매핑'이 이 '매핑'하는 것입니다.empty
리스트:
In [14]: x.tolist()
Out[14]: []
단, 0의 다른 어레이도 있습니다.size
마지막 의미에서는 비어 있지 않습니다.
In [15]: x = np.array([[]])
In [16]: x.size
Out[16]: 0
In [17]: x.shape
Out[17]: (1, 0)
In [18]: x.tolist()
Out[18]: [[]]
In [19]: bool(x.tolist())
Out[19]: True
np.array([[],[]])
사이즈도 0이지만 모양(2,0)과len
2.
이 컨셉은empty
리스트는 잘 정의되어 있습니다.empty array
잘 정의되어 있지 않습니다.빈 리스트는 다른 리스트와 동일합니다. 할 수 size 0
manager.manager로 하다
답은 정말 에 달려있다.
- '비었다'는 게 무슨 뜻이죠?
- 당신은 정말 무엇을 위해 테스트하는 건가요?
언급URL : https://stackoverflow.com/questions/11295609/how-can-i-check-whether-a-numpy-array-is-empty-or-not
'programing' 카테고리의 다른 글
Android "gps requires ACCESS_FINE_LOCATION" 오류(내 매니페스트 파일에 이 오류가 포함됨) (0) | 2022.09.26 |
---|---|
PHP 루프 - SQL 성능 저하 (0) | 2022.09.26 |
execute()를 사용한 여러 SQL 문의 실행 (0) | 2022.09.26 |
잘못된 후크 호출입니다.후크는 기능 구성 요소의 본체 내부에서만 호출할 수 있습니다. (0) | 2022.09.26 |
가장 가까운 정수로 반올림 (0) | 2022.09.26 |