python - 与 Python numpy 矩阵不一致的结果

标签 python numpy matrix

我有一个带有浮点值的矩阵,我尝试获取列和行的摘要。 这个矩阵是对称的

>>> np.sum(n2[1,:]) #summing second row
0.80822400592582844
>>> np.sum(n2[:,1]) #summing second col
0.80822400592582844
>>> np.sum(n2, axis=0)[1]
0.80822400592582899
>>> np.sum(n2, axis=1)[1]
0.80822400592582844

它给出了不同的结果。为什么?

最佳答案

numpy 使用的数字是double,精确到小数点后 16 位。看起来差异发生在第 16 位,其余数字相等。如果不需要这种精度,可以使用舍入函数 np.around(),或者实际上可以尝试使用 np.longdouble 类型来获得更高的精度准确度。

您可以使用 np.finfo 检查类型的准确性:

>>> print np.finfo(np.double).precision
>>> 15

我相信一些 numpy 函数不会接受长 double ,并将其转换为 double ,截断多余的数字。 Numpy precision

关于python - 与 Python numpy 矩阵不一致的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38352647/

相关文章:

python - Opencv imshow在macOS 11.0.1(Big Sur)上使python启动器崩溃

具有多个标题行的 Python 网页抓取表

python - 更改单个行值时保持总和约束行的比例

python - 有效地计算唯一元素的数量 - NumPy/Python

python - sympy 中矩阵的按列(或按行)运算

math - 3D旋转矩阵(旋转到另一个引用系)

python - Python Matplotlib 动画绘图的更新速度缓慢。我怎样才能让它更快?

python - 和 Python 列表上的运算符

python-3.x - 当我收到 UnsatisfiableError : The following specifications were found to be in conflict: …? 时,如何在 anaconda 中创建环境

r - 如何在 R 中将矩阵与 sapply 结合