求numpy数组中元素的最小绝对差

求numpy数组中元素的最小绝对差,numpy,Numpy,我有一个形状(n,m)的数组,还有一个形状(m)的数组b。我想创建一个数组c,其中包含到最近元素的距离。我可以使用以下代码执行此操作: a = [[11, 2, 3, 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') for outer in range(len(a)): current_d

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

a = [[11, 2, 3, 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')
    for outer in range(len(a)):
        current_distance = abs(b[inner] - a[outer][inner])
        if min_distance > current_distance:
            min_distance = current_distance
    c.append(min_distance)

# c=[3, 1, 6, 1, 2]

元素级迭代非常慢。做这件事的基本方法是什么?

如果我正确理解了你的目标,我认为这样做可以:

>>> c = np.min(np.abs(np.array(a) - b), axis = 0)
>>> c
array([3, 1, 6, 1, 2])