二维数组切片与整数索引为何出现括号数量差异?
切片与整数索引提取行的维度差异原因
- 切片操作(
practice[:1,]):切片的设计逻辑是保留原数组的维度。[:1,]表示取第0行到第1行(不包含终止索引1),本质是从二维数组中截取一个二维子数组,所以结果是[[1, 2, 3, 4, 5]],形状为(1, 5),仍是二维数组。 - 整数索引(
practice[0, :]):使用单个整数索引行时,NumPy会自动降维,将目标行从二维数组中提取为一维数组,形状变为(5,),因此结果是[1, 2, 3, 4, 5]。
你的切片操作没有错误,只是两种索引方式的设计目的不同:切片用于获取保持原维度的子数组,整数索引用于获取降维后的单个行/列/元素。如果想用切片得到一维结果,可以通过practice[:1,].flatten()或者practice[:1,][0]实现,但直接用整数索引会更简便。
内容的提问来源于stack exchange,提问作者Mononoke
相关产品推荐
相关产品推荐

