NumPy配列では、パフォーマンスを向上させるためにベクトル化して作業し、配列スライスを使用することもできます。
n = min(len(a), len(b))
out_idx = np.flatnonzero(a[:n] == b[:n])
out_val = a[out_idx] # or b[out_idx] both work
これは、複数の一致の世話をする - ことを念頭に置いて、ここに入力配列a
とb
のための1つのアプローチがあります。
サンプル実行 - インデックスとその値のための出力としてタプルのリストについては
In [224]: a = np.array([3, 8, 9, 2, 1, 7])
In [225]: b = np.array([1, 2, 9, 7, 5, 7, 0, 4])
In [226]: n = min(len(a), len(b))
...: out_idx = np.flatnonzero(a[:n] == b[:n])
...: out_val = a[out_idx]
...:
In [227]: out_idx
Out[227]: array([2, 5])
In [228]: out_val
Out[228]: array([9, 7])
-
In [229]: zip(out_idx, out_val)
Out[229]: [(2, 9), (5, 7)]
指標と対応する値のかなりの辞書の出力のために -
In [230]: {i:j for i,j in zip(out_idx, out_val)}
Out[230]: {2: 9, 5: 7}
長い方の配列と同じ長さになるように小さい方の配列をパディングし、もう一方を引くと、np.where((Arr1-Arr 2)== 0)。 – anki
マッチは1つしかありませんか?あなたはすべての試合、または最初の試合だけをしたいですか? –