向量化两个数字之间的查找

时间:2019-05-22 18:16:25

标签: python pandas numpy cython

我试图找到一种使用numpy将以下for循环矢量化的方法。这个for循环使我的代码真正拖了。我遇到的问题是,我需要根据值val落在数组行内的范围内的索引查找位于字典d中的值。

009.052.29150

我想我可以使用np.where和np.logical_and在数组中的两个数字之间获取,但是然后我需要索引来从字典中获取值,这就是我可以做到的部分”似乎没有循环。

1 个答案:

答案 0 :(得分:1)

由于Divakar的评论,我认为正确的答案是用这种麻木的怪癖代替整个for循环:

 np.vectorize(d1.get)((np.searchsorted(row[:-1],vals,side='left'))-1)*row[-1]