Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.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_Python 2.7_Class_Numpy - Fatal编程技术网

Python numpy数组差分或求和给出错误结果

Python numpy数组差分或求和给出错误结果,python,python-2.7,class,numpy,Python,Python 2.7,Class,Numpy,这是密码 import numpy as np class Test(object): def __init__(self, x): self.x = x def move(self, dx): self.x += dx a = Test(x = np.array([6371000.0, 0.0, 0.0]) loc1 = a.x print loc1 a.move(np.array([-9.81, 0.0, 0.0])) loc2 = a.x

这是密码

import numpy as np

class Test(object):
    def __init__(self, x):
        self.x = x
    def move(self, dx):
        self.x += dx

a = Test(x = np.array([6371000.0, 0.0, 0.0])
loc1 = a.x
print loc1
a.move(np.array([-9.81, 0.0, 0.0]))
loc2 = a.x
print loc2
print loc1[0] - loc2[0]
当我运行这段代码(python 2.7)时,我得到:

[6371000.0.0]

[6370990.19 0.0]


0.0这是因为Python使用对numpy数组的引用

在这一行中,您将
loc1
设置为指向
a.x

loc1 = a.x
然后
loc2
指向同一数组

loc2 = a.x
这就是差异为0.0的原因

如果您想制作数组的副本,那么您可以简单地将其与1.0混合使用

loc1 = a.x * 1.0

这是因为Python使用对numpy数组的引用

在这一行中,您将
loc1
设置为指向
a.x

loc1 = a.x
然后
loc2
指向同一数组

loc2 = a.x
这就是差异为0.0的原因

如果您想制作数组的副本,那么您可以简单地将其与1.0混合使用

loc1 = a.x * 1.0

你期待什么?你正在从它自身减去相同的数字!我认为
loc1
loc2
都引用了相同的数组(即
a.x
),您期望什么?你正在从它自身减去相同的数字!我认为
loc1
loc2
都引用了相同的数组(即
a.x
),谢谢Petersen。明白了,谢谢你,彼得森。知道了。