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

时间:2017-12-06 07:56:04

标签: python numpy

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

输出:

[[1 2 3]
 [1 2 3]
 [1 2 3]
 [1 2 3]
 [1 2 3]
 [4 5 6]
 [4 5 6]]

这个功能是什么?我不确定这叫什么。

1 个答案:

答案 0 :(得分:2)

您只是使用列表索引数组,因此传递center[...] [0,0,0,0,0,1,1],没有'双'括号语法。使用列表建立索引是NumPy功能;来自文档的Indexing chapter

  

NumPy数组可以使用其他数组(或任何其他可以转换为数组的类序列对象,如列表,但元组除外;请参阅本文档的末尾,了解其原因)。< / p>

您使用另一个序列(在这种情况下为列表)索引centers,因此创建了一个重复索引0的新数组,然后是索引1的值,一次。

请注意,这是不切片原始数组;您正在建立索引,并生成一个包含值副本的新数组(更改centers中的值将不会反映在新副本中)。