使用[[]]进行Python数组索引切片

使用[[]]进行Python数组索引切片,python,numpy,Python,Numpy,输出: centers = np.array([[1,2,3],[4,5,6]]) print(centers[[0,0,0,0,0,1,1]]) 这个功能是什么?我不知道这叫什么。你只是用一个列表索引数组,所以中间[…]传递[0,0,0,0,0,1,1],没有“双”括号语法。使用列表进行索引是一项重要功能;从文件的开头: NumPy数组可以与其他数组或任何其他可转换为数组(如列表)的类似序列的对象建立索引,但元组除外;请参阅本文档末尾,了解其原因 您使用另一个序列(在本例中是一个列表)对中心

输出:

centers = np.array([[1,2,3],[4,5,6]])
print(centers[[0,0,0,0,0,1,1]])

这个功能是什么?我不知道这叫什么。

你只是用一个列表索引数组,所以中间[…]传递[0,0,0,0,0,1,1],没有“双”括号语法。使用列表进行索引是一项重要功能;从文件的开头:

NumPy数组可以与其他数组或任何其他可转换为数组(如列表)的类似序列的对象建立索引,但元组除外;请参阅本文档末尾,了解其原因

您使用另一个序列(在本例中是一个列表)对中心进行了索引,因此创建了一个新数组,其中索引0重复一次,后跟索引1的值


请注意,这不是对原始阵列进行切片;您正在编制索引,并且生成了一个包含值副本的新数组。中心中的值不会反映在新副本中。

参考文档中介绍了这一点:谢谢。布尔索引是我所需要的。@Stark:对不起,这不是布尔索引。这是一个索引数组。@kabanus:是的,我也投了相应的票。这可能是对语法的混淆,从而导致错误的搜索词。然而,我希望OP能更详细地分享这一成果。@kabanus:OP可能在寻找带有双括号的特殊语法。然而,他们并没有分享他们的研究成果,所以我们只能猜测。@kabanus:当你知道正确的术语时,谷歌上会出现一些东西,但这并不会使某些东西偏离主题。
[[1 2 3]
 [1 2 3]
 [1 2 3]
 [1 2 3]
 [1 2 3]
 [4 5 6]
 [4 5 6]]