Python 3.x 如何在python中计算一组值的模值?

Python 3.x 如何在python中计算一组值的模值?,python-3.x,modulus,Python 3.x,Modulus,在一种材料中,我找到了一个计算精度的公式,如下所示 这里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) p

在一种材料中,我找到了一个计算精度的公式,如下所示

这里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个输出值。但在材料和一般情况下,精度是单一值。如果列表大小增加,则输出值也会增加。最后我发现我误解了这里的意思。请指导我按照上述公式获得单个精度值。提前谢谢


注:在公式中,a和b是一组值。所以我在代码中使用了列表。另外,如果我使用其他选项在python中提到一组值,那么我可以得到单精度值

正如@Hoog在gis评论中提到的,精度情况下的模运算意味着某个集合的一个值(只是集合中的多个元素),因此您可以按照以下方式定义精度:

def precision(a, b):
    """
    a: set, relevant items
    b: set, retrieved items
    returns: float, precision value
    """
    return len(a & b) / len(a)
len(a)
返回集合元素的数量,即基数,
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)

此外,在数据科学和相关领域,精度是计算比率的一种度量标准。
“真阳性”/(“真阳性”+“假阳性”)
。这与其他术语中描述的情况相同,但精度的标准实现对您没有帮助。

正如@Hoog在gis评论中提到的,精度情况下的模运算意味着某个集合的a(只是集合中的一些元素),因此您可以定义如下精度:

def precision(a, b):
    """
    a: set, relevant items
    b: set, retrieved items
    returns: float, precision value
    """
    return len(a & b) / len(a)
len(a)
返回集合元素的数量,即基数,
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)

此外,在数据科学和相关领域,精度是计算比率的一种度量标准。
“真阳性”/(“真阳性”+“假阳性”)
。这与其他术语中描述的情况相同,但精度的标准实现对您没有帮助。

模数和绝对值是两个截然不同的东西
3%2=1
显示模数运算符(
%
)的工作状态。绝对值仅取1个数字并返回一个正值:
abs(-3)=3
。根据您对精度的定义,如果看起来像绝对值:
a
除了返回
a
中每个元素的绝对值列表之外,还应该执行其他操作,我不会感到惊讶。也许它在寻找每套的尺寸?谢谢你的回复。根据你的说法,我能理解模数的两种不同含义。但据我所知,每组的大小可能不是计算精度的正确逻辑。所以如果可能的话,试着给我一些其他的选择。。谢谢。我能告诉你的是,取每个元素的绝对值不会给你1个精度数字。在集合论中,双行
|a |
可以用来表示集合
a
的基数,即集合中元素的数量。我想这就是人们所要求的,但也许你们可以得到更多的信息。模数和绝对值是两个完全不同的东西
3%2=1
显示模数运算符(
%
)的工作状态。绝对值仅取1个数字并返回一个正值:
abs(-3)=3
。根据您对精度的定义,如果看起来像绝对值:
a
除了返回
a
中每个元素的绝对值列表之外,还应该执行其他操作,我不会感到惊讶。也许它在寻找每套的尺寸?谢谢你的回复。根据你的说法,我能理解模数的两种不同含义。但据我所知,每组的大小可能不是计算精度的正确逻辑。所以如果可能的话,试着给我一些其他的选择。。谢谢。我能告诉你的是,取每个元素的绝对值不会给你1个精度数字。在集合论中,双行
|a |
可以用来表示集合
a
的基数,即集合中元素的数量。我想这就是人们所要求的,但也许你可以得到更多的信息。根据公式,你的答案是正确的。但是,我的输入值得到了不同的值。所以,我想集中我的输入值。非常感谢您宝贵的回复。那么,有什么区别呢?
a=[7,21]
b=[11,7,27,21]
示例是否正确?根据我的情况,a列表中的值在b列表中始终可用。所以“return len(a&b)/len(a)”总是给我1.0的精度。所以我只提到我要集中我的输入值。谢谢..只有当set
a
等于set
b
时,精度为1.0的值才可能。在这种情况下,精度实际上是1.0,在本讨论中,我们使用的“len(a&b)/len(a)”只不过是set(a&b)始终等于set a。因此,对于我的输入,只有精度始终为1.0。感谢您宝贵的建议和花费的时间。根据公式,您的答案是正确的。但是,我的输入值得到了不同的值。所以,我想集中我的输入值。非常感谢您宝贵的回复。那么,有什么区别呢?
a=[7,21]
b=[11,7,27,21]
示例是否正确?根据我的情况,a列表中的值在b列表中始终可用。所以“return len(a&b)/len(a)”总是给我1.0的精度。所以我只提到我要集中我的输入值。谢谢..只有当set
a
等于set
b
时,精度为1.0的值才可能。在这种情况下,精度实际上是1.0,在本讨论中,我们使用的“len(a&b)/len(a)”只不过是set(a&b)始终等于set a。等等