Si vous avez un tableau multidimensionnel, len() peut ne pas vous donner la valeur que vous recherchez. Par exemple :
import numpy as np
a = np.arange(10).reshape(2, 5)
print len(a) == 2
Ce bloc de code retournera vrai, vous indiquant que la taille du tableau est 2. Cependant, il y a en fait 10 éléments dans ce tableau 2D. Dans le cas d'un tableau multidimensionnel, len() vous donne la longueur du tableau. premièrement dimension du tableau, c'est-à-dire
import numpy as np
len(a) == np.shape(a)[0]
Pour obtenir le nombre d'éléments dans un tableau multidimensionnel de forme arbitraire :
import numpy as np
size = 1
for dim in np.shape(a): size *= dim
1 votes
Il ne s'agit pas vraiment d'une duplication du comptage des éléments d'une liste, car un tableau peut être de dimension supérieure, n'est-ce pas ? Le site
len()
d'un tableau n'est pas le nombre d'éléments du tableau, sauf si le tableau est 1D. On pourrait arguer qu'une liste de listes est également de dimension supérieure, mais la préséance est plus claire pour la liste de premier niveau. Pour cette liste de premier niveau, le nombre d'éléments est juste sonlen()
parce qu'elle est fondamentalement 1D.0 votes
Est-ce que np.ndarray.size ne ferait pas ce que vous voulez ? Par exemple
a= np.ones((3,5,4,8))
donne un tableau de dimensions 3,5,4,8 qui a donc 3*5*4*8 =480 éléments. En faisanta.size
retours 480. Voir https://numpy.org/doc/stable/reference/generated/numpy.ndarray.size.html . Je voudrais ajouter cette réponse mais la question a été fermée en tant que doublon, même si elle n'est pas la même que l'autre question.