记录一种数组视图切片与赋值的现象。
视图操作
###案例一
#切片是同视图操作,不新建数组,会改变原有的数组
boxes=np.array([[50,100,100,150],[70,120,120,170],[80,130,130,180],[80,130,130,180]])
a=boxes[1:3,1:3]
a[:,:]=888
>>>[[888 888]
[888 888]]
>>>[[ 50 100 100 150]
[ 70 888 888 170]
[ 80 888 888 180]
[ 80 130 130 180]]
直接赋值
boxes=np.array([[50,100,100,150],[70,120,120,170],[80,130,130,180],[80,130,130,180]])
a=boxes[1:3,1:3]
#赋值,会新建一个数组 不改变原有的数组
a=[[0,0],[0,0]]
print(a)
print(boxes)
>>>[[0, 0], [0, 0]]
>>>[[ 50 100 100 150]
[ 70 120 120 170]
[ 80 130 130 180]
[ 80 130 130 180]]
小结
数组的视图操作不新建数组,极大节省了内存空间。