我有一个numpy ndarray,其中第一列是用户id,第二列是某个产品id。对于给定的用户id,获取所有产品id的最快方法是什么
我也读过numpy doc和这本手册(https://jakevdp.github.io/PythonDataScienceHandbook/02.02-the-basics-of-numpy-arrays.html),但运气不好
假设我们有这个数组:
test = [[0, 1], [0, 20], [0, 30], [1, 11], [1, 23], [1, 45]]
我的目标是得到这样一个函数:
get_product_ids(0)
>> [1, 20, 30]
那
np.where
和一些切片呢…尽管这是一个很好的单行程序—关于执行速度,如果您不想使用numpy数组,那么像Amit Yadav提出的纯Python解决方案很可能更快
试一试。我提供了两种做同样事情的方法。随便你用
复杂性在O(n)附近,应该足够好和快
如果您经常使用这个函数,我建议您编写另一个函数,返回一个字典,其中user\u id作为键,product\u id作为值。这将使整个操作比每次遍历完整列表更有效
使用您的示例输入,该字典将如下所示:
这可以通过这样一种简单的方法来实现
相关问题 更多 >
编程相关推荐