numpy でしたら、numpy.intersect1d() で共通するインデックスを探すことで実現できます。
python
1import numpy as np
2
3array1 = np.array([[1, '山田', 18],
4 [2, '田中', 28],
5 [3, '佐藤', 38],
6 [4, '安藤', 12]])
7array2 = np.array([[1, '東京'],
8 [3, '群馬']])
9# 各配列の1列目は index のリスト
10print(array1[:, 0]) # ['1' '2' '3' '4']
11print(array2[:, 0]) # ['1' '2']
12
13# 共通する要素を探す
14_, comm1, comm2 = np.intersect1d(array1[:, 0], array2[:, 0],
15 assume_unique=True, return_indices=True)
16print(comm1) # [0 2] 共通する array1 のインデックス
17print(comm2) # [0 1] 共通する array2 のインデックス
18
19array1 = array1[comm1]
20array2 = array2[comm2]
21print(array1)
22# [['1' '山田' '18']
23# ['3' '佐藤' '38']]
24
25print(array2)
26# [['1' '東京']
27# ['3' '群馬']]