我有一个名为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
指向不同的数组对象。 - couka