什么';在Python列表切片中间做逗号()吗?

什么';在Python列表切片中间做逗号()吗?,python,list,Python,List,那个切片机在这里干什么- data = np.loadtxt(input_file, delimiter=',') X, y = data[:, :-1], data[:, -1] 我知道-- 1反转列表,冒号是开始和停止信号。但是,逗号(代码在中间做什么?NoMy支持多个维度。在您的例子中,这是一个二维切片:逗号前面的部分切片第一个维度,逗号后面的部分切片第二个维度。这意味着数据是2D或更大的,实际上,loadtxt()会生成2D数组 Ref:让我们澄清一个误解:这不是Python列表!它是

那个切片机在这里干什么-

data = np.loadtxt(input_file, delimiter=',')
X, y = data[:, :-1], data[:, -1]

我知道-- 1反转列表,冒号是开始和停止信号。但是,<代码>逗号(<,)>代码在中间做什么?

NoMy支持多个维度。在您的例子中,这是一个二维切片:逗号前面的部分切片第一个维度,逗号后面的部分切片第二个维度。这意味着数据是2D或更大的,实际上,
loadtxt()
会生成2D数组


Ref:

让我们澄清一个误解:这不是Python列表!它是一个Python对象,支持
[]
\uuu getitem\uuu
)运算符,但它不是一个列表<代码>数据[:][:-1]将等同于
数据[:-1]
;第一个切片操作本质上是一个不可操作的操作。因此,我认为,如果说您可以将
数据[:,:-1]
视为
数据[:][:-1]
,则没有帮助。第一个切片操作只接受2d数组的最后一列,而第二个切片操作只接受2d数组的最后一行。也许你的意思是
data[:,None][None,:-1]
,或者
data[:][None,:-1]
,但这只是引入了更多的东西来解释:-(@MarkDickinson:好的,我删除了答案的那部分。所以要清楚
data[:,:-1]
此处-1不反转2D矩阵,但排除最后一列?@AlmuntasirAbir:正确,因为逗号分割了切片,所以第二个切片是
:-1
,它是除最后一个之外的所有内容。
[:,::-1]
将翻转矩阵。