Python - Numpy数组索引作为元组

时间:2018-01-31 12:55:45

标签: python numpy

如果我们用Numpy创建一个数组,我们可以使用numpy库给出的许多功能。

例如,如果c是矩阵

print(c[:,1])

将打印第1列中的每个值。

现在,当我以这种方式索引c矩阵时,我是否使用元组索引?如果是的话,怎么可能有一个元组':'在里面?

1 个答案:

答案 0 :(得分:1)

冒号语法是slice(..)对象的语法糖。你的表达与以下内容相同:

#        v slice object
print(c[(slice(None), 1)])
#       ^   tuple      ^

所以你传递了一个元组,其中包含slice(None)个对象作为第一个元素,而1作为第二个元素。

切片语法到slice(..)个对象的映射如下:

  1. 冒号:相当于slice(None);
  2. 如果是:b,则相当于slice(b);
  3. a:相当于slice(a, None);
  4. a:b相当于slice(a, b);
  5. ::c相当于slice(None, None, c);
  6. :b:cslice(None, b, c);
  7. a::c相当于slice(a, None, c);和
  8. a:b:cslice(a, b, c)
  9. 请注意,切片语法仅在itemgetter的上下文中支持(所以x[..])。