我曾经使用min([a, b], key=lambda x:abs(x-x0))
来找出哪个数a
或b
离x0
更近。
a = 1
b = 2
x0 = 1.49
print(min([a, b], key=lambda x:abs(x-x0)))
# >>> 1
现在,a
和b
是具有任意维数的numpy数组。我想创建一个由两个数组中最接近x0的值构成的数组,元素与元素之间一一对应。
import numpy as np
a = np.array([[1, 2], [3, 5]])
b = np.array([[6, 2], [6, 2]])
## case 1
x0 = 4
# >>> should return np.array([[6, 2], [3, 5]])
## case 2
x0 = np.array([[1, 2], [3, 4]])
# >>> should return np.array([[1, 2], [3, 5]])
要找到两个数组的逐元素最小值,我们可以使用 numpy.minimum
。不幸的是,它不接受lambda
函数作为参数。
我该怎么办?
x0
是一个单精度浮点数。a
和b
的维度在这个问题中不应该起作用,只要a.shape == b.shape
,对吗? - Liris