我有两个数组(A & B)。 我想计算数组A中包含在数组B中的用户的百分比。 我已经尝试过但我找不到解决方案。在Python中加入两个列表:
回答
100.0 * sum((x in B) for x in A)/len(A)
如果B
较大,使用了一套效率:
100.0 * len(set(B).intersection(A))/len(A)
最pyhtonic的方法是像上面Rogalski评论。
的Python在我看来是非常强的,在集:https://docs.python.org/2/library/sets.html
可以使一个交叉点在两个方面
组(A)&组(B)或设置(A).intersection(集(上述(只是修正)B))
和公式就像提到
100 * len(set(A) & set(B))/len(set(A))
这个问题说“数组A的用户的百分比”,所以我猜分母应该是“len(A)”。 – ayhan
好思想 - thx –
。交互可以采取一个不是集合的迭代,所以第二个调用是不必要的,也可以只是'set(A)&set(B)' –
你只需要创建一个组,总结了次在正元件是在B中的组成员的:
st = set(b)
perc = sum((ele in st for ele in a),0.0)/len(a) * 100
如果你确实有numpy的数组:
import numpy as np
a, b = [1, 3], [1, 4,3]
perc = np.in1d(a, b).sum()/100.0/len(a)
- 1. 在Python中加入一个数组中的两个列表
- 2. 加入两个表的列
- 3. Linq加入两个列表
- 4. Python中加入两个嵌套表
- 5. 从两个mysql表中加入列
- 6. python加入列表中的最后两个索引
- 7. Python的 - 在两个列表
- 8. 加入两个表时,在两列中的值不匹配
- 9. 一起加入列表的列表到一个列表在Python
- 10. Python插入排序的两个列表
- 11. 基于两列在SQL中加入表?
- 12. 在Python中比较两个列表
- 13. 在Python中转义两个列表
- 14. 两个列表在Python中交互
- 15. 加入两个表
- 16. 加入两个表
- 17. 在Python中,如何将一个元组列表加入到一个列表中?
- 18. 加入两列与一个表MySQL
- 19. 加入两个列表条件
- 20. 加入两个表并更新列值
- 21. 加入两个偏移列表
- 22. Linq加入两个表和计数列
- 23. c#LINQ加入两个列表
- 24. 两个列表的非标准加入
- 25. 加入两个内联表 - 未知列?
- 26. 在perl中加入两个文件(表)
- 27. 在codeigniter中加入两个表
- 28. 在SQL中加入两个表oracle
- 29. Python:乘两个列表
- 30. Python的 - 从两个列表
'1.0 * LEN(集(A)&设置(B))/ len(set(B))' –
这些numpy数组吗? – ayhan
你的标题是“列表”,但你的问题是“数组”。他们是Python列表,[array.array](https://docs.python.org/3/library/array.html)s,Numpy数组还是其他?另外,这些“数组”中的任何一个是否包含重复的项目? –