Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python NumPy在切片时更改值_Python_Numpy - Fatal编程技术网

Python NumPy在切片时更改值

Python NumPy在切片时更改值,python,numpy,Python,Numpy,我用的是简单的公式 beta = covariance[0,1]/covariance[1,1] 协方差在哪里 [[ 1.96330748e-05 2.39329295e-05] [ 2.39329295e-05 1.05846999e-04]] 当我打印时 covariance[1,1] NumPy返回0.000105846998912而不是1.05846999e-04,从而更改数组中原始项的值,只有在终端中运行此协方差[1,1]语句时,我才遇到此问题。如果我在Jupite

我用的是简单的公式

beta = covariance[0,1]/covariance[1,1]
协方差在哪里

[[  1.96330748e-05   2.39329295e-05]
 [  2.39329295e-05   1.05846999e-04]]
当我打印时

covariance[1,1]

NumPy返回0.000105846998912而不是1.05846999e-04,从而更改数组中原始项的值,只有在终端中运行此协方差[1,1]语句时,我才遇到此问题。如果我在Jupiter运行相同的东西,它就可以正常工作。你能帮我吗?

0.000105846998912
等于
1.05846999e-04

一个是科学记数法,另一个不是。

大多数“浮点”都是错误的问题,与浮点的格式和内部表示之间的差异有关。计算机不能准确地表示“格式化”浮点

需要注意的是我使用的是哪种类型的浮点,例如,这里您可以检查您是否使用了or
float64
type数组。您可以通过键入以下内容进行检查:

covariance.dtype
您可以使用numpy中的
set\u printoptions
设置值打印方式的详细信息。还要确保您了解不同python版本中的浮点值

这就是您所说的“可复制”示例:

如果我使用python3.5在jupyter下运行它,我会得到:

0.000105846999
0.000105846999
0.00010584699900000000
0.22610872038044271815
1.21901076340828695699

如果我在python控制台下运行它,我会得到相同的答案

两者是一样的。唯一的区别是numpy和Python如何重复发送浮点。是的,但为什么当我执行协方差[0,1]时,我得到的是2.39329295e-05,而协方差[1,1]无法得到1.05846999e-04?如果问题是得到的结果不同,您可能需要制作一个简单的可重复示例,演示如何获得不同的结果。上面的示例不允许我粘贴代码并确认您的“错误”答案。“科学”不是数据类型。这只是浮点数打印到屏幕上的方式。这几乎肯定不是差异的根源。同样,如果您能提供一个可复制的示例,或者至少提供一个jupyter输出与终端输出的示例,那就太好了。@ArtYudin,您确定您没有意外地执行
协方差[1,0]/协方差[0,0]
?这可以解释
1.219811444283643
yes的结果,但为什么当我做协方差[0,1]时,我得到的是2.39329295e-05,而不能得到协方差为[1,1]的1.05846999e-04?选中,float64,不是打印问题,同一数组使用相同语法beta=convariance[0,1]产生不同结果的公式问题/协方差[1,1]
0.000105846999
0.000105846999
0.00010584699900000000
0.22610872038044271815
1.21901076340828695699