可以先做一个小的实验,运行下一段代码
import copy
a = np.array([[1,2],[3,4]])
batch = a[0:1]
batch += np.array([6,7])
print(a)
然后你得到的结果是:
array([[7, 9],
[3, 4]])
为什么会出现这种情况呢,因为你进行batch=a[0:1]操作时,取出来的只是指向a相应位置的指针,对batch进行后续操作也就是对a进行操作。那如果要取出数据后不对原数据进行操作,该怎么做呢
import copy
a = np.array([[1,2],[3,4]])
batch = copy.deepcopy(a[0:1])
batch += np.array([6,7])