Python 空或全NA系列的乘积现在为1。为什么?

Python 空或全NA系列的乘积现在为1。为什么?,python,pandas,nan,Python,Pandas,Nan,在处理所有Na系列时,已引入的版本0.22.0 在这些变化中有 空或全NA系列的乘积现在为1 为什么这比返回NaN或0更好或有任何优势?在NaN的产品上返回1不是一个错误吗?有人能给我解释一下这里的交易是什么吗?因为按惯例是1。1是产品的标识操作 当序列中的所有数字相等时,我希望序列的乘积表现为指数运算。例如,产品([3,3,3,3])=3^4。 通过这种推理,产品([])=3^0=1。幸运的是,我们不需要知道这个案子的底细。开发人员似乎也有类似的理解 这也是为什么 空或全NA系列的总和现在为0

在处理所有Na系列时,已引入的版本0.22.0

在这些变化中有

空或全NA系列的乘积现在为1

为什么这比返回NaN或0更好或有任何优势?在NaN的产品上返回1不是一个错误吗?有人能给我解释一下这里的交易是什么吗?

因为按惯例是1。1是产品的标识操作

当序列中的所有数字相等时,我希望序列的乘积表现为指数运算。例如,
产品([3,3,3,3])=3^4
。 通过这种推理,
产品([])=3^0=1
。幸运的是,我们不需要知道这个案子的底细。开发人员似乎也有类似的理解

这也是为什么

空或全NA系列的总和现在为0

空总和是总和的标识操作。它是0。

,因为按惯例它是1。1是产品的标识操作

当序列中的所有数字相等时,我希望序列的乘积表现为指数运算。例如,
产品([3,3,3,3])=3^4
。 通过这种推理,
产品([])=3^0=1
。幸运的是,我们不需要知道这个案子的底细。开发人员似乎也有类似的理解

这也是为什么

空或全NA系列的总和现在为0


空总和是总和的标识操作。这是0。

详细讨论的是这个问题:@AlexRiley感谢链接。现在读它…另见;从邮件列表中详细讨论了这个问题:@AlexRiley谢谢你的链接。现在读它…另见;从邮件列表中,空列表的总和可以合理地为0。尽管如此,我还是不明白为什么空列表的乘积会给出与满1的列表相同的结果。我现在读的是关于“身份元素”的书,相当混乱。同一元素是数字还是不是数字类型的“特殊类型的元素”?来源于“一组或相关数学结构的同一元素I(也表示为E、E或1)是唯一的元素,使得S中的每个元素a的Ia=aI=a。符号“E”源自德语中的统一词“Einheit”。“标识元素也称为单位元素。“所以,1在这种情况下是一个符号,而不是数字1。。。还是我错了?对于求和,想想2+2+2,也就是2*3。2只是2*1,2*0是0。这就是为什么空和为0。现在2*2*2可以写成2^3,2可以写成2^1。但是2^0被定义为1。这意味着1^1=1^0,从中我们可以导出1^n=1^0。因此,您的完整1列表应给出与空产品相同的结果。x^0=1对很多事情都很有用。请参阅维基百科的文章I linked。从您的链接文章来看,标识元素符号有时也是1。但是对于(标量)产品,它也是第一位的。谢谢你的解释。现在清楚多了。我更喜欢返回NaN而不是数字的旧方法,现在我必须重新检查大量代码:(空列表的总和可以合理地为0。但是,我不明白为什么空列表的乘积会给出与满1的列表相同的结果。我现在读的是关于“标识元素”,非常令人困惑。标识元素是数字还是不是数字类型的“特殊类型的元素”?来自群或相关数学结构S的同一元素I(也表示为E、E或1)是唯一的元素,因此S中的每个元素a的Ia=aI=a。符号“E”源于德语统一词“Einheit”。同一元素也称为单位元素。"所以,1在这种情况下,它是一个符号,不是数字1…或者我错了吗?对于和,想想2+2+2,它是2*3。2只是2*1,2*0是0。这就是为什么空和是0。现在2*2*2可以写成2^3,2可以写成2^1。但是2^0被定义为1。这意味着1^1=1^0,我们可以从中推断出1^n=1^0。所以你的完整1列表应该给你同样的结果lt作为一个空产品。x^0=1对很多事情都很有用。请参阅我链接的Wikipedia文章。从您链接的文章来看,标识元素符号有时也是1。但对于(标量)产品也是第一位。谢谢你的解释。现在更清楚了。我更喜欢返回NaN的旧方法,而不是数字,我现在必须重新检查很多代码:(