21

私が書いたPythonスクリプトを実行すると(ここに含めるには長い道のりです)、警告メッセージが表示されます。コードのどの行でこれが発生するかわかりません。どうすればこの情報を入手できますか?

さらに、これは正確にはどういう意味ですか?実際、ある種のマスクされた配列を使用しているとは知りませんでしたか?

/usr/lib/pymodules/python2.7/numpy/ma/core.py:3785: UserWarning: Warning: converting a masked element to nan.
warnings.warn("Warning: converting a masked element to nan.")
4

2 に答える 2

3

MaskedArray.__float__例外が発生するようにパッチを適用することもできます。この方法では、コードを含むスタック トレースが表示されます。また、コード内でパッチを適用できます.../ma/core.py。.

squeeze():

import numpy as np
from numpy import ma

def raise_me(*args, **kw):
    raise Exception('ping')

ma.MaskedArray.squeeze = raise_me

def test():
    x = np.array([(1, 1.), (2, 2.)], dtype=[('a',int), ('b', float)])
    m = x.view(ma.MaskedArray)
    m.squeeze()

def main():
    test()

main()

そして出力:

Traceback (most recent call last):
  File "t.py", line 19, in <module>
    main()
  File "t.py", line 17, in main
    test()
  File "t.py", line 13, in test
    m.squeeze()
  File "t.py", line 6, in raise_me
    raise Exception('ping')
Exception: ping

ご覧のとおり、 の行が表示されますm.squeeze()

于 2013-04-26T13:30:11.880 に答える