Python 查找与numpy数组中元素的最小绝对差相对应的值

Python 查找与numpy数组中元素的最小绝对差相对应的值,python,numpy,Python,Numpy,我有一个形状(n,m)的数组,还有一个形状(m)的数组b。我想创建一个数组c,其中包含a中与b的对应元素最近的元素。我可以使用以下代码执行此操作: a = [[11, 2, 9, 4, 5], [4, 4, 6, 1, -2]] b = [1, 3, 12, 0, 0] c = [] for inner in range(len(a[0])): min_distance = float('inf') best_index = 0 for outer in range(l

我有一个形状(n,m)的数组,还有一个形状(m)的数组b。我想创建一个数组c,其中包含a中与b的对应元素最近的元素。我可以使用以下代码执行此操作:

a = [[11, 2, 9, 4, 5], [4, 4, 6, 1, -2]]
b = [1, 3, 12, 0, 0]
c = []

for inner in range(len(a[0])):
    min_distance = float('inf')
    best_index = 0
    for outer in range(len(a)):
        current_distance = abs(b[inner] - a[outer][inner])
        if min_distance > current_distance:
            min_distance = current_distance
            best_index = outer
    c.append(a[best_index][inner])

print(c)
# [4, 2, 9, 1, -2]
当a中的两个元素(e.i.a[0][1]和a[1][1])距离相等时,选择哪个元素并不重要,而是在b中的一个元素(e.i.b[1])的相对边上。 我怎样才能用numpy做到这一点

a = np.array(a)
b = np.array(b)
a[abs(a-b).argmin(0), np.arange(a.shape[1])]