numpy.testing.assert_array_compare()で配列が不一致であることを確認する

numpy.testing.assert_array_compare()で配列が不一致であることを確認する

  • 目次

    numpy.testing.assert_array_compare()で配列が不一致であることを確認する。

    初めに

    numpyの公式ドキュメントにこのAPIの仕様がなかったけど、つまったところがあったのでメモしておく。

    numpy.testing.assert_array_compare()

    2つの配列が不一致であることを確認する

    以下のように実装すると2つの配列が不一致であるときのみPASSする。

    import numpy as np
    import operator
    
    a = np.array([1,2,3])
    b = np.array([4,5,6])
    
    # すべての要素が異なる場合はPASS
    np.testing.assert_array_compare(operator.__ne__, a, b) 
    
    # 1要素でも一致している場合はNG
    c = np.array([1,5,6])
    np.testing.assert_array_compare(operator.__ne__, a, c) 
    # ...
    # AssertionError: 
    #
    #
    # Mismatched elements: 1 / 3 (33.3%)
    # Max absolute difference: 3
    # Max relative difference: 0.6
    #  x: array([1, 2, 3])
    #  y: array([1, 5, 6])
    

    終わりに

    なんでこのAPIは仕様が書かれていないのだろうか。。。

    comments powered by Disqus