将值插入已排序的 numpy 数组中正确位置的最快方法是什么?
例如,我想将 b
的每个值插入到 a
中:
a = [1,1,2,4,7,7,11,13,13,13,15,20,25,26,27,30,45,70]
b = [5,7,9,45]
我试过为 b
的每个值遍历 a
并以这种方式插入它。我还尝试了 bisect_left
方法:
for i in b:
a.insert(bisect_left(a,i),i)
这两种方法都太慢了,因为我要处理数十万个数据元素。
有什么想法吗?
最佳答案
您可以使用searchsorted
和insert
:
a = numpy.array([1,1,2,4,7,7,11,13,13,13,15,20,25,26,27,30,45,70])
b = numpy.array([5,7,9,45])
ii = numpy.searchsorted(a, b)
a = numpy.insert(a, ii, b)
关于python - 将值插入排序数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19860256/