求numpy数组中元素的最小绝对差
我有一个形状(n,m)的数组,还有一个形状(m)的数组b。我想创建一个数组c,其中包含到最近元素的距离。我可以使用以下代码执行此操作:求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
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])