我有一个形状为(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(即a[0][1]和a[1][1])中的两个元素距离相等,但与b(即b[1])中的一个元素相反时,选择哪个元素并不重要。
我怎么能用numpy做到这一点?