gpt4 book ai didi

python - 使用 numpy 获取数组列表中相交元素的计数(避免循环)

转载 作者:行者123 更新时间:2023-12-04 03:56:21 30 4
gpt4 key购买 nike

我有一个名为 MyFruits 的值数组,例如:

[apple, orange, banana, apple, pear]

然后我有一个数组列表,例如:

[apple, orange]
[blueberry, watermelon, pear]
[grape, orange, grape, orange]
[]
[cantaloupe]

对于列表中的每个数组,我想得到与 MyFruits 数组相交的元素数除以数组中的元素总数。所以输出将是:

2 / 2 = 1
1 / 3 = 0.66667
2 / 4 = 0.5
0 / 0 = (in this case 0)
0 / 1 = 0

本质上:

[1, 0.66667, 0.5, 0, 0]

我一直在使用 for 循环在 Python 中执行此操作,但是数据集很大而且速度非常慢。有人建议使用 numpy,但我很难理解。

最佳答案

假设您有两个列表,一个长度为 M,另一个长度为 N。如果通过直接的线性搜索来完成,则需要 O(M * N) 次字符串比较才能找到两个列表中的哪些元素。

您可以使用 Python 集合对此进行改进。将列表转换为 Python 集并使用 set intersection (&)找到他们的共同点。然后复杂度降低到 O(M + N)。

关于python - 使用 numpy 获取数组列表中相交元素的计数(避免循环),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63820934/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com