飛ぶと思い込んでいたので、ここで入ったnanのせいでしばらく進んでから逆行列を求める計算LinAlgError: Singular matrixで死ぬのに悩まされた。
>>> array([0]) / 0.0 array([ nan]) >>> array([1]) / 0.0 array([ inf])
NaNやInfが出てきた時点で例外を飛ばすオプションとかないかなぁ。プロトタイピングではfail fast重要ですよー。
numpy.seterrで例外を飛ばすように設定できるらしい!(thanks @shima__shima)
>>> numpy.seterr(all="raise") # 変更前の値が返ってくる
{'divide': 'warn', 'invalid': 'warn', 'over': 'warn', 'under': 'ignore'}
>>> array([1]) / 0
---------------------------------------------------------------------------
FloatingPointError Traceback (most recent call last)
/Users/nishio/cur/prml/<ipython-input-525-de9a636bcadc> in <module>()
----> 1 array([1]) / 0
FloatingPointError: divide by zero encountered in divide