我有兩個數組(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數組還是其他?另外,這些「數組」中的任何一個是否包含重複的項目? –