【发布时间】:2021-02-11 12:37:23
【问题描述】:
我有一个名为 n 的数组,其中包含数字,我的目标是创建一个数组 m,其中 m[i] = n[i] - n[i-1]。 m[0] 正好等于 n[0]。我试过这个:
import numpy as np
n = np.array([1,2,3,4])
m = n
for i in range(1, len(n)):
m[i] = n[i] - n[i-1]
for 循环中的赋值做了一些我不明白的事情,因为它使 n 和 m 都变成了数组 = [1 1 2 2]。我只是想更改 m 中的输入。
注意:当我像这样严格初始化 n 和 m 时,我的代码会按照我的意愿执行:
n = np.array([1,2,3,4])
m = np.array([1,2,3,4])
但我觉得我应该能够制作 n 的副本并且只能操作副本。有什么建议或帮助吗?
【问题讨论】:
-
在您的原始代码中,
m只是对n指向的同一数组对象的另一个引用。在您的第二个版本中,m和n指向不同的数组对象。 -
我明白了,所以它们指向同一个对象。谢谢!