从两个不同的数组中选择最接近的值

时间:2013-09-10 10:36:29

标签: python numpy

假设我有一个numpy数组

A = [[1 2 3]
     [2 3 3]
     [1 2 3]]

和另一个数组

B = [[3 2 3]
     [1 2 3]
     [4 6 3]]

和一组真值:

C = [[1 4 3]
     [8 7 3]
     [4 10 3]]

现在我要创建一个数组D,其元素是从A或B中删除的,条件是每个元素与数组C的最接近的值。

有没有pythonic方式来做到这一点?现在我正在使用循环

1 个答案:

答案 0 :(得分:7)

>>> K = abs(A - C) < abs(B - C)  # create array of bool
[[True, False, False],
 [True,  True, False],
 [False, False, False]]
>>> D = where(K, A, B)     # get elements of A and B respectively