在Python中使用numpy / scipy进行binning的矢量化方法
发布时间:2020-12-16 22:20:49 所属栏目:Python 来源:网络整理
导读:我正在使用np.digitize将Python中的2d数组(x by y)合并到其x值的区间(在“bins”中给出): elements_to_bins = digitize(vals,bins) 其中“vals”是一个二维数组,即: vals = array([[1,v1],[2,v2],...]). elements_to_bins只是说每个元素落入哪个bin.我当时
我正在使用np.digitize将Python中的2d数组(x by y)合并到其x值的区间(在“bins”中给出):
其中“vals”是一个二维数组,即:
elements_to_bins只是说每个元素落入哪个bin.我当时想要做的是得到一个列表,其长度是“箱子”中的箱数,每个元素返回落入该箱的“val”的y维度.我现在这样做:
有没有更优雅/更简单的方法来做到这一点?我只需要列出每个bin中的y值列表. 谢谢. 最佳答案
如果我理解你的问题:
Numpy的快速数组操作searchsorted()用于最大效率.然后逐个添加值(因为最终结果不是矩形数组,Numpy对此无能为力).此解决方案应该比循环中的多个where()调用更快,这会迫使Numpy多次重新读取同一个数组. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |