如果我们用Numpy创建一个数组,我们可以使用numpy库给出的许多功能。
例如,如果c
是矩阵
print(c[:,1])
将打印第1列中的每个值。
现在,当我以这种方式索引c矩阵时,我是否使用元组索引?如果是的话,怎么可能有一个元组':'在里面?
答案 0 :(得分:1)
冒号语法是slice(..)
对象的语法糖。你的表达与以下内容相同:
# v slice object
print(c[(slice(None), 1)])
# ^ tuple ^
所以你传递了一个元组,其中包含slice(None)
个对象作为第一个元素,而1
作为第二个元素。
切片语法到slice(..)
个对象的映射如下:
:
相当于slice(None)
; :b
,则相当于slice(b)
; a:
相当于slice(a, None)
; a:b
相当于slice(a, b)
; ::c
相当于slice(None, None, c)
; :b:c
至slice(None, b, c)
; a::c
相当于slice(a, None, c)
;和a:b:c
至slice(a, b, c)
。请注意,切片语法仅在itemgetter的上下文中支持(所以x[..]
)。