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

2024-03-28 23:50:32 发布

您现在位置:Python中文网/ 问答频道 /正文

这是密码

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]

当我运行这段代码(Python2.7)时,我得到:

[6371000。00.]

[6370990.19.0.]。0.]

0.0个


Tags: testimportselfnumpy密码movedefas
1条回答
网友
1楼 · 发布于 2024-03-28 23:50:32

这是因为Python使用对numpy数组的引用。你知道吗

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

loc1 = a.x

然后loc2指向同一数组。你知道吗

loc2 = a.x

这就是为什么差别是0.0。你知道吗

如果您想制作数组的副本,那么您可以简单地将它与1.0进行复合。你知道吗

loc1 = a.x * 1.0

相关问题 更多 >