如何计算python中一组值的模值?
How to calculate modulus value for a set of values in python?
在一个 material 中,我找到了一个计算精度的公式,如下所示
这里a和b是一组值。在互联网上多次搜索后,我发现模数表示余数或绝对值。这里我取模数作为绝对值,我上面公式的python代码如下
import numpy as np
def intersection(lst1, lst2):
return list(set(lst1) & set(lst2))
a = [7,21]
b = [11, 7, 27, 21]
a_intersect_b=intersection(a,b)
print(" a_intersect_b : ",a_intersect_b)
mod_a_intersect_b=[abs(x) for x in a_intersect_b]
print("|a_intersect_b| : ",mod_a_intersect_b)
mod_a=[abs(x) for x in a]
print("|a| : ",mod_a)
numerator=np.array(mod_a_intersect_b, dtype=np.float)
denominator=np.array(mod_a, dtype=np.float)
print(" mod_a_intersect_b / mod_a : ", numerator/denominator)
这里我得到2个输出值。但是在 material 中,一般来说精度是一个单一的值。如果列表大小增加,则输出值也会增加。最后我发现我误解了这里的模数的意思。指导我按照上面的公式得到单精度值。提前致谢。
注:公式中a、b为一组值。所以我在我的代码中使用了列表。如果我使用其他选项在 python 中提及一组值,也请指导我,然后我可以获得单精度值。
正如@Hoog在gis评论中提到的,precision情况下的模运算意味着某个集合的cardinality(只是集合的一些元素), 所以你可以定义一个精度如下:
def precision(a, b):
"""
a: set, relevant items
b: set, retrieved items
returns: float, precision value
"""
return len(a & b) / len(a)
len(a)
returns 集合元素的数量,即基数,|a|
操作。
如果a
,b
是列表,先把它们包起来:
def precision(a, b):
"""
a: set, relevant items
b: set, retrieved items
returns: float, precision value
"""
a, b = set(a), set(b)
return len(a & b) / len(a)
此外,在数据科学及相关领域,精度是计算比率 'true positives' / ('true positives' + 'false positives')
的指标。这与其他术语中描述的相同 - 但精度的标准实现对您没有帮助。
在一个 material 中,我找到了一个计算精度的公式,如下所示
这里a和b是一组值。在互联网上多次搜索后,我发现模数表示余数或绝对值。这里我取模数作为绝对值,我上面公式的python代码如下
import numpy as np
def intersection(lst1, lst2):
return list(set(lst1) & set(lst2))
a = [7,21]
b = [11, 7, 27, 21]
a_intersect_b=intersection(a,b)
print(" a_intersect_b : ",a_intersect_b)
mod_a_intersect_b=[abs(x) for x in a_intersect_b]
print("|a_intersect_b| : ",mod_a_intersect_b)
mod_a=[abs(x) for x in a]
print("|a| : ",mod_a)
numerator=np.array(mod_a_intersect_b, dtype=np.float)
denominator=np.array(mod_a, dtype=np.float)
print(" mod_a_intersect_b / mod_a : ", numerator/denominator)
这里我得到2个输出值。但是在 material 中,一般来说精度是一个单一的值。如果列表大小增加,则输出值也会增加。最后我发现我误解了这里的模数的意思。指导我按照上面的公式得到单精度值。提前致谢。
注:公式中a、b为一组值。所以我在我的代码中使用了列表。如果我使用其他选项在 python 中提及一组值,也请指导我,然后我可以获得单精度值。
正如@Hoog在gis评论中提到的,precision情况下的模运算意味着某个集合的cardinality(只是集合的一些元素), 所以你可以定义一个精度如下:
def precision(a, b):
"""
a: set, relevant items
b: set, retrieved items
returns: float, precision value
"""
return len(a & b) / len(a)
len(a)
returns 集合元素的数量,即基数,|a|
操作。
如果a
,b
是列表,先把它们包起来:
def precision(a, b):
"""
a: set, relevant items
b: set, retrieved items
returns: float, precision value
"""
a, b = set(a), set(b)
return len(a & b) / len(a)
此外,在数据科学及相关领域,精度是计算比率 'true positives' / ('true positives' + 'false positives')
的指标。这与其他术语中描述的相同 - 但精度的标准实现对您没有帮助。