在Python中,[:,:-1]代表什么?

8

我刚开始自学python中的机器学习。我并没有理解代码中的某一段,希望您能够帮我澄清它的含义。 此外,我不知道[:, -1][:,: - 1]是什么意思。

inputs = training_data[:,:-1]
outputs = training_data[:, -1]

1
请参考以下链接了解NumPy中的切片操作:https://dev59.com/D3RB5IYBdhLWcg3wyqOo#509295 或者直接在谷歌上搜索“NumPy中的切片操作”。 - Dan
5
这不仅仅是关于切片,注意逗号... - Óscar López
链接的重复并没有涉及到切片中的逗号,但这很简单;__getitem__ 接收的是一个 slice 对象的元组,而不是一个单独的 slice 对象。 - chepner
3
不,它是一组切片的元组。 - chepner
切片[:, :-1]生成两个slice对象,即slice(None,None,None)slice(None, -1, None) - chepner
显示剩余4条评论
2个回答

14

[:, :]的字面意思是[所有行,所有列]

在Python中进行索引时,当您从第一个元素到最后一个元素时,它从0开始,但是当您从最后一个元素开始时,它从-1开始。

因此,当您执行[:, -1]时,这意味着您正在获取所有行和仅最后一列。-1表示最后一列。

当您执行[:, :-1]时,这意味着您正在获取所有行和除最后一列之外的所有列。

现在,当您执行training_data[:, -1]时,这意味着从数据框training_date中,您使用所有行和仅最后一列。类似地,training_data[:, :-1]表示所有行和除最后一列之外的所有列。

但是:

如果您执行training_data[:, -1],可能会遇到切片问题。由于您使用整数来切片df,因此最好使用.iloc方法。

本教程如何从Pandas DataFrame中选择多个行和列?清楚地解释了所有内容。请查看它。

例子: 例子


-1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接