Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在多个轴上应用numpy.searchsorted_Python_Search_Optimization_Numpy_Multidimensional Array - Fatal编程技术网

Python 在多个轴上应用numpy.searchsorted

Python 在多个轴上应用numpy.searchsorted,python,search,optimization,numpy,multidimensional-array,Python,Search,Optimization,Numpy,Multidimensional Array,我试图将一个二维排序值数组和一个一维排序值数组传递给searchsorted,并让它返回相应的一维索引值数组。我必须多次执行此操作,我正试图找到一种有效的方法来执行此操作。最后,我想传递一个沿轴排序的3d值数组,一个要搜索的2d值数组,并让函数返回一个2d索引数组 这是一个MLE from numpy import * random.seed(1234) a = zeros((4,10)) a[:,1:-1] = random.rand(4,8) a[:,1:-1].sort(1) a[:,-

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

这是一个
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中的错误

您已经找到了一种方法。真的那么低效吗?也许你可以试试
numpy.vectorize