与えられた値のリストと、同様の値を持つリスト(リスト、、、および)A
のB
コレクションがあります。C
リストに最も近いリストを返す方法を見つけようとしていgiven
ます。距離計量として最小二乗適合を使用したいと思います。
given = [0, 1, 2, 3, 4, 5]
A = [0.1, 0.9, 2, 3.3, 3.6, 5.1]
B = [-0.1, 0.9, 2.1, 3.1, 3.9, 5]
C = [0, 1.1, 2, 2.9, 4, 5.1]
したがって、この場合、にC
最も近いものとして返されgiven
ます。
私は次のようなものを組み込むことができると思いました:
match = [min([val[idx] for val in [A,B,C]], key=lambda x: abs(x-given[idx])) for idx in range(len(given))]
ただし、これは各リスト要素に最も近い値のみを返します。次に、リストCを最も近いポイントごとの一致として識別する方法がわかりません。
また、リストの長さが異なる場合、インデックスごとに比較しないとどうしたらよいかわかりません。例えば:
given = [0, 1, 2, 3, 4, 5]
A = [0.1, 0.9, 2, 3.3, 3.6, 2, 5.1, 3, 6.8, 7.1, 8.2, 9]
B = [-0.1, 0.9, 2.1, 3.1, 3.9]
C = [-1.7, -1, 0, 1.1, 2, 2.9, 4, 5.1, 6, 7.1, 8]
C
それでも最も近い一致として返されます。
私もNumpyを使用していますが、有用なものは何も見つかりませんでした。どんな助けでも大歓迎です!