这是一个小代码来说明问题。
A = array([[1,2], [1,0], [5,3]])
f_of_A = f(A) # this is precomputed and expensive
values = array([[1,2], [1,0]])
# location of values in A
# if I just had 1d values I could use numpy.in1d here
indices = array([0, 1])
# example of operation type I need (recalculating f_of_A as needed is not an option)
f_of_A[ indices ]
所以,基本上我认为我需要一些相当于 in1d 的更高维度。这样的事情存在吗?还是有其他方法?
看起来还有一个 searchsorted() 函数,但这似乎也适用于一维数组。在此示例中,我使用了 2d 点,但任何解决方案也需要适用于 3d 点。