NumPy数组元素在选中时会发生奇怪的变化

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NumPy数组元素在选中时会发生奇怪的变化相关的知识,希望对你有一定的参考价值。

我使用NumPy数组制作了一个简单的线性方程系统求解器。我手边有两个数组:一个2x2(A)和一个2x1(B)。

通过使用Ainv = np.linalg.inv(A)反转第一个,然后使用Ainv.dot(B)将其与第二个相乘,我得到第三个2x1数组,其中包含我想要的x和y值,该函数返回该函数,顺便称为solveLin()

现在,如果我打印出变量到位的print(solveLin()),我会得到具有正确值的数组[[-8.] [ 5.]]

但是,如果我用print(solveLin()[0][0])来定位值,我会得到-7.9999999999999984.999999999999999作为我的答案。

如果我将它们设置为显示为整数,则它们变为-7和4

编辑:我确实理解为什么浮动数字以这种方式运行,但我不明白为什么它们在数组中以单向显示,然后在直接调用时以另一种方式显示。

答案

Numpy试图提供帮助并打印可读的内容。请参阅this,了解其正在做的事情。

在python中打印调用str和str不会打印精确的东西,只是提供信息。 repr()用于精确表示。

另一答案

从根本上说,二元是numpy用来处理数字的事实很难用十进制精确表示,反之亦然。看看我们如何习惯用十进制表示三分之一,0.33333333 ..在python中,0.1是0.100000000000000005551115123125 ..这是来自python docs的链接:Decimal fixed point and floating point arithmetic

以上是关于NumPy数组元素在选中时会发生奇怪的变化的主要内容,如果未能解决你的问题,请参考以下文章

仅在选中时读取 GTK 单选按钮信号

iOS 8 UITableView 单元格在选中时会跳转

IOS PDFKit - 注释内容仅在选中时可见

UITableView 单元格分隔符在选中时消失

Foreach 仅在选中时才选择第一个复选框

如果数组元素发生变化,则可观察到