在这种情况下,单冒号和双冒号有什么区别?data[0:,4]
vs data[0::,4]
women_only_stats = data[0::,4] == "female"
men_only_stats = data[0::,4] != "female"
我试着用data[0:,4]
替换data[0::,4]
,我看不出有什么区别。在这种情况下或其他情况下有什么区别吗?data
是二维数组,行类似于['1' '0' '3' 'Braund, Mr. Owen Harris' 'male' '22' '1' '0' 'A/5 21171' '7.25' '' 'S']
5条答案
按热度按时间dauxcl2d1#
请参见切片的Python文档:
来自文档:
a[start:stop:step]
start和step参数默认为None。Slice对象具有只读数据属性start、stop和step,这些属性仅返回参数值(或其默认值)。
在本例中,您将包含一个空的
step
参数。为了理解
step
参数的实际作用:因此,通过将其隐式地保留为
None
(即,a[2:]
或a[2::]
),您将不会以任何方式更改代码的输出。希望这个有用。
fsi0uk1n2#
这两种语法产生相同的索引。
基本上,
1::,6
是一个切片(1::
)和一个数字(6
)的元组。切片的格式为start:stop[:stride]
。将跨距留空(1::
)或不声明跨距(1:
)是等效的。myzjeezk3#
没有区别,你用的是相同的
slice
对象。ffscu2ro4#
事情是这样的:
s[start:end:step]
。以步长 step 从开始到结束对s进行切片。f45qwnt85#
在您的情况下,数据为
所以它等于
在这种情况下,列表中只有一个项目,因此数据[0::4]或数据[0:4]不会影响任何东西。
如果您尝试此操作,将清除您的问题/答案
它就像
因此,如果步长小于数据长度,它的行为与往常一样。