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.999999999999998
和4.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数组元素在选中时会发生奇怪的变化的主要内容,如果未能解决你的问题,请参考以下文章