1. ホーム
  2. python

[解決済み] 空の配列に対するValueErrorを克服する

2022-02-12 05:41:47

質問

本論 Y軸の限界値をプロットする際の問題を修正しようとしたのですが、その際に twiny() は私のプロットを台無しにします。

こう思いました。

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

は良い解決策でした。そして、おそらくそれは、連続したデータのセットに対してのものでしょう。 その議論でも言ったように、とにかく私のデータはノイズが多く、時にはギャップもあります。だから、プロットされた範囲にはデータがないこともある。このような場合、当然ながら .min() がエラーを発生させます。

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

というのは、配列が空だからです。この問題を回避するには、Y軸に制限をかけることを気にしないようにするにはどうしたらよいでしょうか。(空の配列が引き起こす問題はこれだけであることを期待しています。)

解決方法は?

例外をキャッチして無視すればよい。

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