python numpy数组索引_Python的numpy数组的行索引与切片的区别

本文档详细介绍了Python numpy数组的行索引与切片的区别。通过创建一个2维数组实例,展示了如何使用行索引(如streetlights[0])获取向量,以及使用切片(如streetlights[0:1])获取矩阵。切片允许指定开始、结束和步长,而行索引直接选取特定行。通过示例,还展示了如何读取数组的奇数行和偶数行。
摘要由CSDN通过智能技术生成

看《深度学习图解》的第6章的代码,前后对于矩阵的索引操作代码略有区别。心中疑问重重,为何两者都能工作。带着疑问,网上查阅了一些资料,基本搞清楚两种索引的不同。下面形成文档,以便彻底学习numpy.array的相关用法(以二维数组为例)。

在python IDLE Shell 创建一个2维数组(6×3,6行3列,18个元素)

streetlights = np.array([[1, 0, 1],

[0, 1, 1],

[0, 0, 1],

[1, 1, 1],

[0, 1, 1],

[1, 0, 1]])

创建代码:

7e77687bd9f5

创建数组

取第一行:

方法1: streetlights[0]

方法2: streetlights[0:1] 或streetlight[0:1:1]或streetlight[0:1:1,:]

运行过程及结果如下图所示,都能正确地读取到第1行。但是,注意,方法1返回的是向量。方法2返回的是矩阵。

7e77687bd9f5

image.png

分析如下:

方法1采用“行索引”对数据进行选取,行号由0开始。我的理解是每行作为一个元组,存储在一个一维数组里。其索引如同一维数据的索引类似。

方法2采用切片方式索引。语法是array[begin:end:step, begin:end:step]。演示代码只关注行,列关键词可以省略(默认为选中所有列数据)。step默认为1,从begin开始取,但不包括end。

7e77687bd9f5

读第一行和第二行

以下切片只取奇数行数据,2表示隔行取数据(结果是矩阵)。

7e77687bd9f5

读奇数行(结果是矩阵)

以下切片只取偶数行数据(结果是矩阵):

7e77687bd9f5

读偶数行(结果是矩阵)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值