web-dev-qa-db-fra.com

Comment puis-je vérifier si le tableau numpy est vide ou non?

Comment puis-je vérifier si le tableau numpy est vide ou non?

J'ai utilisé le code suivant, mais c'est un échec si le tableau contient un zéro.

if not self.Definition.all():

est-ce la solution?

if self.Definition == array( [] ):
133
Kicsi Mano

Vous pouvez toujours consulter l'attribut .size. C'est défini comme un entier , et vaut zéro (0) lorsqu'il n'y a aucun élément dans le tableau:

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

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

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

L'objet principal de NumPy est le tableau multidimensionnel homogène. Dans Numpy, les dimensions sont appelées axes. Le nombre d'axes est rang. La classe de tableau de Numpy s'appelle ndarray. Il est également connu par le tableau d'alias. Les attributs les plus importants d'un objet ndarray sont:

ndarray.ndim
le nombre d'axes (dimensions) du tableau. Dans le monde Python, le nombre de dimensions est appelé rang.

ndarray.shape
les dimensions du tableau. C'est un tuple d'entiers indiquant la taille du tableau dans chaque dimension. Pour une matrice à n lignes et m colonnes, la forme sera (n, m). La longueur de la forme Tuple est donc le rang, ou le nombre de dimensions, ndim.

ndarray.size
le nombre total d'éléments du tableau. Ceci est égal au produit des éléments de forme.

18
Colonel Panic

Une mise en garde, cependant. Notez que np.array (None) .size renvoie 1! En effet, a.size équivaut à np.prod (a.shape), np.array (Aucun) .shape est () et un produit vide est 1.

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

Par conséquent, j'utilise ce qui suit pour tester si un tableau numpy a des éléments:

>>> 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
3
user10178557