python - 用整数运算准确反射(reflect)大数和的大小

标签 python numpy integer-overflow

再次感谢您的宝贵时间。我希望我没有太打扰你们。 当和溢出,但均值在范围内时,如何通过整数运算快速准确地了解和的大小?

平均值不会溢出,但它不是整数运算。自然对数适用于数学,但在编程中速度很慢。

>>> k = numpy.empty((10), dtype=numpy.int64)
>>> k[:] = 9223372036854775807
>>> print k
[9223372036854775807 9223372036854775807 9223372036854775807
 9223372036854775807 9223372036854775807 9223372036854775807
 9223372036854775807 9223372036854775807 9223372036854775807
 9223372036854775807]
>>> numpy.sum(k)
-10
>>> numpy.mean(k)
9.2233720368547758e+18

最佳答案

numpy.iinfo(numpy.int64).max

给出

9223372036854775807L

因此,当在求和中使用整数值时,您会遇到溢出。但另一方面,

numpy.finfo(numpy.float64).max

给出

1.7976931348623157e+308

因此,在计算平均值时不会出现溢出,因为平均值的计算使用浮点值并且结果是正确的。如果您使用的值大于允许的最大值,它就会溢出。

关于python - 用整数运算准确反射(reflect)大数和的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17076780/

相关文章:

android - 检查 Android NDK 代码中的整数溢出

python - 是否可以在python中定义c类型变量并将其地址传递给cython包装的函数

python - 打开CV cv.imread修改图像

python - 检查列的单元格是否以特定字符串开头 [Pandas]

python - 标量的矩阵元素次方

python - 将数据帧行转换为矩阵 - Python Pandas

c++ - “Symmetrical difference”,用于无符号整数-假定翻转

python - 如何将 numpy 数组 dtype=object 转换为稀疏矩阵?

arrays - 将 5 个二维数组沿对角线垂直堆叠以构建整个二维数组

assembly - 8080 上的签名溢出检测