在多个轴上应用numpy.searchsorted

时间:2014-05-27 22:38:36

标签: python search optimization numpy multidimensional-array

我试图将一个排序值的二维数组和值的一维数组传递给searchsorted,并让它返回一个相应的1d索引值数组。我必须多次执行此操作,并且我试图找到一种有效的方法。最后,我想传递一个沿着轴排序的三维值数组,一个二维数组值来搜索并让函数返回一个二维索引数组。

这是MLE

from numpy import *
random.seed(1234)

a = zeros((4,10))
a[:,1:-1] = random.rand(4,8)
a[:,1:-1].sort(1)
a[:,-1] = 1.

v = random.rand(4)

res = array([searchsorted(a[j], v[j]) for j in xrange(4)])

res应该是[9,1,7,6]

有一种有效的方法吗?理想情况下,如果可能的话,我想避免使用Cython。如果它有帮助,搜索的每个数组应该有9-10个元素,而搜索的值的数量更大(100-1000个元素),因此传递的2d数组的大小将为1000x10。

修改更正了MLE中的拼写错误

0 个答案:

没有答案