Python NumPy 2D数组普通切片与基于布尔值的切片

Python NumPy 2D数组普通切片与基于布尔值的切片,python,arrays,numpy,Python,Arrays,Numpy,我是Numpy新手,我在试验2D阵列Numpy, 当数组以两种不同的方式切片时,我进行了以下观察 a = numpy.array([[1,2,3,4,5],[1,2,3,4,5]]) slice1 = a[:,:3] slice1[0,0] = 100 print(a) -- gives, 100 2 3 4 5 1 2 3 4 5 根据numpy文件,这种行为是预期的 但是考虑这个切片 a = numpy.array([[1,2,3,4,5],[1,2,3,4,5]

我是Numpy新手,我在试验2D阵列Numpy, 当数组以两种不同的方式切片时,我进行了以下观察

a = numpy.array([[1,2,3,4,5],[1,2,3,4,5]])
slice1 = a[:,:3]
slice1[0,0] = 100
print(a) 
-- gives, 100 2 3 4 5
           1  2 3 4 5
根据numpy文件,这种行为是预期的 但是考虑这个切片

a = numpy.array([[1,2,3,4,5],[1,2,3,4,5]])
slice2 = a[[True,True],:3]
slice2[0,0] = 100
print(a) 
-- gives us
1 2 3 4 5
1 2 3 4 5
有人能从以下方面解释这两种方法之间的区别吗

高级索引始终返回数据的副本(与返回数据的基本切片相反)

毕竟,如果你想让
返回一个视图,
总是返回一个数据副本(与返回一个视图的基本切片不同),那么没有办法让这些步骤起作用。