请教这段Numpy切片代码的语法含义及官方文档依据
问题:Numpy切片
[:, :-1]和[:, -1]的含义及官方说明 现有一段Python代码如下:
# split into inputs and outputs X, y = data[:, :-1], data[:, -1] print(X.shape, y.shape)已知这是基于Numpy的切片操作,处理的data数组形状为(610, 14)。我了解这属于切片操作,但找不到":-1"写法的相关文档参考,恳请解释第二行代码并给出对应的官方文档内容。
代码解释
针对形状为(610, 14)的二维Numpy数组data,该行代码的作用是将数组拆分为输入特征集X和目标变量集y:
data[:, :-1]:- 第一个
:表示选取所有行(保留全部610行); :-1是列维度的切片,代表从第0列开始,到倒数第2列结束(切片遵循左闭右开规则,-1指向最后一列,因此不会包含最后一列)。最终得到形状为(610, 13)的二维数组,作为输入特征赋值给X。
- 第一个
data[:, -1]:- 第一个
:同样选取所有行; -1是列维度的负索引,直接指向最后一列,最终得到形状为(610,)的一维数组,作为目标变量赋值给y。
- 第一个
执行代码后,print(X.shape, y.shape)会输出(610, 13) (610,)。
官方文档相关说明
Numpy的切片规则延续了Python序列切片逻辑,并针对多维数组做了扩展:
- 负索引机制:负整数索引从数组末尾反向计数,
-1对应最后一个元素,-2对应倒数第二个元素,以此类推。 - 切片语法:切片的完整格式为
start:stop:step,省略start时默认从索引0开始;省略stop时默认到数组末尾;省略step时默认步长为1。:-1等价于0:-1:1,即从开头取到倒数第一个元素的前一位。 - 多维数组切片:多维数组通过逗号分隔不同维度的切片规则,每个维度独立应用切片逻辑,比如
[:, ...]中的逗号明确区分行维度和列维度的选取规则。
内容的提问来源于stack exchange,提问作者Purab Bajaj
相关产品推荐
相关产品推荐

