import numpy as np
a=np.array([1,2,3])
b=np.array([4,5,7])
c=a
d=b[:]
c[-1]=100
d[-1]=100
print(a)
print(id(c),id(a))
print(b)
print(id(d),id(b))
输出是:
为什么d和c的id已经不一样了,给一个赋值另外一个还是会变化
import numpy as np
a=np.array([1,2,3])
b=np.array([4,5,7])
c=a
d=b[:]
c[-1]=100
d[-1]=100
print(a)
print(id(c),id(a))
print(b)
print(id(d),id(b))
输出是:
为什么d和c的id已经不一样了,给一个赋值另外一个还是会变化
c=a 相当于将符号c指向符号a的内容,所以本质上c和a是相同的
对于d=b[:],numpy对于切片拷贝的处理是不对相同数据进行复制,以确保处理大量数据时节省空间
numpy中数组元素的切片复制_小灰笔记-CSDN博客
代码1:#!/usr/bin/pythonimport numpy as nparr1 = np.arange(10)print(arr1)slice_data = arr1[3:5]print(slice_data)slice_data[0] = 123print(slice_data)print(arr1)类似的代
https://blog.csdn.net/grey_csdn/article/details/69053476
由此得出来的结论是:切片后的变量与原始的数据共享同一数据存储。而这种特点是专门针对大数据的处理而定制的。
有帮助望采纳