web-dev-qa-db-fra.com

Surmonter ValueError pour un tableau vide

Dans cette discussion j'ai essayé de résoudre un problème dans le traçage des limites pour l'axe des y, après que la twiny() fout mon tracé. Je pensais ceci:

ax.set_ylim([y.min()-0.05, y.max()+0.05])

était une bonne solution. Et c'est probablement le cas pour un ensemble continu de données. Comme je l'ai dit dans cette discussion, de toute façon, mes données sont bruyantes et parfois avec des lacunes. Il arrive donc que certaines plages tracées n'aient pas de données. Dans ce cas, naturellement, l'utilisation de la .min() déclenche l'erreur:

ValueError: zero-size array to reduction operation minimum which has no identity

parce que le tableau est vide. Comment contourner cela, de sorte que le code ne se soucie tout simplement pas de mettre des limites sur l'axe des y? (En espérant que ce soit le seul problème que le tableau vide causera)

15
Py-ser

Attrapez simplement l'exception et ignorez-la:

try:
    ax.set_ylim([y.min()-0.05, y.max()+0.05])
except ValueError:  #raised if `y` is empty.
    pass
27
mgilson