我有两个阵列(A& B)。 我想计算数组A的用户百分比,它们包含在数组B中。 我已经尝试但我找不到解决方案。
答案 0 :(得分:10)
100.0 * sum((x in B) for x in A) / len(A)
如果B
很大,请使用效率集:
100.0 * len(set(B).intersection(A)) / len(A)
答案 1 :(得分:5)
最讽刺的方式就像上面评论的Rogalski一样。
我认为Python在集合中非常强大:https://docs.python.org/2/library/sets.html
你可以用两种方式建立一个交叉点
设置(A)& set(B)或set(A).intersection(set(B))
公式如上所述(刚刚更正)
100 * len(set(A) & set(B)) / len(set(A))
答案 2 :(得分:0)
你只需要创建一个集合,并将a中元素的时间加在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)