Python 3.x python3如何在2d数组中减去(紧挨着)值?

Python 3.x python3如何在2d数组中减去(紧挨着)值?,python-3.x,Python 3.x,假设这是一行2d数组“数据”,原始数据从第4列开始(1,9,15,39…) 中国安徽,31.8257117.2264,1,9,15,39,60… 我使用下面的脚本来减去数组(data[I][j]-data[I][j-1]的两个(紧挨着)成员的值,例如9-1、15-9、39-15 然而,当我调试时,我意识到它以某种奇怪的方式工作, 特别是语法数据[i][j-1]没有按照我想要的方式工作, 脚本只在第一个循环中起作用,然后我得到奇怪的结果, 特别是我意识到,在第一个周期之后,它改变了我的源“数据”数

假设这是一行2d数组“数据”,原始数据从第4列开始(1,9,15,39…)

中国安徽,31.8257117.2264,1,9,15,39,60…

我使用下面的脚本来减去数组
(data[I][j]-data[I][j-1]
的两个(紧挨着)成员的值,例如9-1、15-9、39-15 然而,当我调试时,我意识到它以某种奇怪的方式工作, 特别是语法数据[i][j-1]没有按照我想要的方式工作, 脚本只在第一个循环中起作用,然后我得到奇怪的结果, 特别是我意识到,在第一个周期之后,它改变了我的源“数据”数组 1,9,15至1,8,15, 即使我没有数据的修改代码,我也希望在数据2中进行修改 我遗漏了什么吗?在python中,数组中的递增/递减索引的工作方式似乎不同

for i in range (1,len(data)):
    for j in range (5,len(data[0])):
        diffr=(int(data[i][j])) - (int(data[i][j-1]))
        data2[i][j]=diffr

数据和数据2都引用了同一个对象。可能是您将数据浅拷贝到了数据2。

数据和数据2都引用了同一个对象。可能是您将数据浅拷贝到了数据2。

怎么可能?在此代码之前,我做了此操作>
data2=data
这是完整的代码>
 导入csv数据文件=打开('sample11.csv','r')数据读取器=csv.reader(数据文件,定界符=',')数据读取器中的行的数据=[]数据。追加(行)数据2=范围内的i的数据(1,len(数据)):范围内的j的数据(5,len(数据[0]):衍射=(int(数据[i][j])-(int(数据[i][j-1]))数据2[i][j]=带打开的衍射('export.csv','w',newline='')作为csvfile:spamwriter=csv.writer(csvfile,delimiter='',quotechar='|',quoting=csv.QUOTE|MINIMAL)spamwriter.writerows(data2)
知道如何将两个对象分开吗?可以使用data2=data[:]而不是data2=data。或者您可以使用复制模块来复制对象。例如,导入复制;data2=copy.deepcopy(数据)。请问data2=data与data2=data[:]之间的区别是什么?我在想,当执行varaible2=variable1时,它会创建包含variable2内容的新变量,因为它在其他语言中工作,这是怎么可能的?在编写此代码之前,我做了此操作>
data2=data
这里是完整代码>
import csv datafile=open('sample11.csv','r')datareader=csv.reader(datafile,delimiter=',')data=[]对于datareader中的行:data.append(row)data2=范围内i的数据(1,len(data)):对于范围内j的数据(5,len(data[0]):衍射=(int(data[i][j])-(int(data[i][(j-1)])data2[i][j]=作为csvfile:spamwriter=csv打开('export.csv',w',newline='')的衍射(csvfile,delimiter='',quotechar='|',quoting=csv.QUOTE|MINIMAL)spamwriter.writerows(data2)
你知道如何将两个对象分开吗?你可以使用data2=data[:]而不是data2=data。或者你可以使用copy模块来复制一个对象。例如导入copy;data2=copy.deepcopy(data)。请原谅,btw data2=data与data2=data[:]的区别是什么?我在想,当do varaible2=variable1时,它会创建包含variable2内容的新变量,就像在其他语言中工作一样,
origin source 1,9,15,39,60
strange results 1,8,7,32,28,42