我只想了解numpy中的复制机制。我知道.copy将创建一个副本,而不是原始数组的引用。
但是当我选择原始数组的一个切片并将其分配给新变量时,numpy会做什么。它会创建副本还是参考?
我尝试了以下操作,似乎选择一个切片实际上是在创建一个新对象。
a = np.array([[1,2,3,4,5],[1,1,1,1,1]])
c = a[:,:]
c[:,:] = 4
a
Out[13]:
array([[4, 4, 4, 4, 4],
[4, 4, 4, 4, 4]])
a = np.array([[1,2,3,4,5],[1,1,1,1,1]])
b = a[:,[0,1,2,3,4]]
b[:,:]=4
a
Out[14]:
array([[1, 2, 3, 4, 5],
[1, 1, 1, 1, 1]])
有人可以确认我的理解是否正确吗?