我试图找到一个函数(在Python中,理想情况下)来告诉我一个数字与给定的数字列表有多“相似”。最终的目标是找出一个给定的数字更可能是一个成员的列表。你知道吗
例如,以两个列表为例:
a = [5,4,8,3,6,4,7,2]
b = [9,5,14,10,11,18,9]
函数应该采用一个新的数字,并告诉我它与给定的列表有多相似。例如,假设一个假设的“isSimilar”函数将返回一个数字可能是所提供列表成员的百分比概率:
# 5 looks pretty similar to list 'a' but not list 'b'.
>>> print isSimilar(a,5)
.9
>>> print isSimilar(b,5)
.5
# 15 looks more similar to list 'b'
>>> print isSimilar(a,15)
.4
>>> print isSimilar(b,15)
.8
# 10 looks like it has roughly the same chance to be in both lists
>>> print isSimilar(a,10)
.41
>>> print isSimilar(b,10)
.5
理想情况下,这个假设函数会考虑列表的标准差。例如,在以下两个列表中:
a = [5,6,4,5]
b = [1,9,2,8]
数字“5”与列表“a”比“b”更“相似”,因为“a”中数字的标准偏差要小得多。你知道吗
如果能帮我找到正确的方向,我将不胜感激。你知道吗
对这两个集合使用估计的pdf如何?你知道吗
本质上,我们是说,如果一个单一的值在一个分布中更可能,它可能来自那个分布。你知道吗
示例:
分别为1和2。你知道吗
可能是这样的:
或者使用集合:
set(a_list).intersection( set(b_list))
它将返回两个列表的交集,然后您可以计算结果列表并进行其他数学运算。你知道吗
如果您使用的是字符串/序列/etc:https://docs.python.org/2/library/difflib.html,也可以考虑使用
difflib
文档打开列表.计数():
https://docs.python.org/2/tutorial/datastructures.html
所以,我不太确定百分比。但是,找出这个数字更可能属于哪个列表应该不是太难。我只计算这个数字和列表中所有数字的平均差值。平均距离越接近0,就越有可能出现在列表中。你知道吗
相关问题 更多 >
编程相关推荐