我有两个数组(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. 在Python中加入两个字符列表
- 3. 在Python中加入两个词典列表
- 4. Python中加入两个嵌套表
- 5. 加入两个表的列
- 6. 加入两个子列表
- 7. Linq加入两个列表
- 8. 加入2个列表,Python
- 9. 的Python:加入两个表和表
- 10. 加入两个表中的多列
- 11. 从两个mysql表中加入列
- 12. python加入列表中的最后两个索引
- 13. 加入了SQL字符串,两个列表在Python
- 14. Python中,两个列表
- 15. Python的 - 在两个列表
- 16. 加入两个表时,在两列中的值不匹配
- 17. 一起加入列表的列表到一个列表在Python
- 18. Python插入排序的两个列表
- 19. 基于两列在SQL中加入表?
- 20. 在Python中转义两个列表
- 21. 两个列表在Python中交互
- 22. 在Python中比较两个列表
- 23. 在Python中合并两个列表
- 24. 在Python中交错两个列表
- 25. 在Python中比较两个列表
- 26. MySQL在CodeIgniter中在同一个表中加入两个不同的列两次
- 27. 加入两个表
- 28. 加入两个表
- 29. 在python v。2中插入两个不同长度的列表?
- 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数组还是其他?另外,这些“数组”中的任何一个是否包含重复的项目? –