这不是语法错误,甚至可能不是错误。我们需要看到data 才能确定。 Numpy 数组等接受切片元组作为索引,所以这当然不是不可能的。
有关 numpy 索引的介绍,请参阅 here。
0:: 部分与: 或:: 基本相同,至少如果我们使用标准切片解释。 (请记住,切片对象可以由多种类型组成,因此像 "A":10:(1,2) 这样的东西在语法上是完全有效的——决定如何处理该输入是对象的责任。)
我怀疑 data 是一个类似于 numpy 的数组
>>> data
array([[1, 2, 5, 12, 'male'],
[1, 2, 5, 12, 'female'],
[1, 2, 5, 12, 'female']], dtype=object)
>>> data[:,4]
array(['male', 'female', 'female'], dtype=object)
:,4,或::,4,或0::,4,都表示“给我沿轴0(行)和列#4的每个值”。然后我们可以进行矢量化比较:
>>> data[:,4] == "female"
array([False, True, True], dtype=bool)
最后,我们可以用它来过滤data:
>>> female_only_stats = data[:,4] == "female"
>>> data[female_only_stats]
array([[1, 2, 5, 12, 'female'],
[1, 2, 5, 12, 'female']], dtype=object)