在Numpy中,对ndarray数组的切片是原始数组的视图,这意味着数据不会被复制,视图上任何的修改都会直接反映到源数组上。
arr = np.arange(10) #[0,1,2,3,4,5,6,7,8,9] arr_slice = arr[5:8] arr_slice[1] = 12345 #[0,1,2,3,4,5,12345,6,7,8,9]因为Numpy的设计目的是处理大数据,所以如果将数据复制来复制去的话会产生性能和内存问题。
如果想要得到的是切片的副本而非视图,需要显式地进行复制操作,例如arr_slice = arr[5:8].copy()。