Numpy ndarray数组切片

时间:2022-06-04 21:21:58

在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()。