【简单易懂】numpy多维数组索引和切片的理解

Nunpy数组的索引和切片要结合其形状来理解,如果理解numpy多维数组的形状,那么其切片也很好理解。

建议在阅读下面部分内容前,先看一下numpy多维数组形状的讲解(字数不多,言简意赅且和下面讲解内容相关)

【全网最清楚】Python numpy的多维数组形状讲解_榕城候佳人的博客-CSDN博客相信很多小伙伴在学习numpy的过程中都会被其多维数组的概念搞的头晕眼花,尤其是多维这个概念不知道每一个维度对应的是什么意思,那么今天我就用几句话给大家讲一下,绝对让你豁然开朗。并且每一个较高一级的维度的值表示的是比它低一级的维度中的元素的个数;如果A,B有一个维度d相等,并且其中一个多维数组A的其他维度值都为1,那么就是B数组的所有维度全部加上A的d维度的值。https://blog.csdn.net/weixin_62588253/article/details/128530821

索引

        Numpy的索引和切片其实是两个连贯的步骤,首先要索引,其次要切片。什么意思呢?索引是确定对哪几个维度进行操作,而切片是对某一个维度进行切片的操作。举个例子:如下图我们有一个三维数组a,其形状是(8, 2, 3)即有8个2维数组,每个2维数组有2个一维数组,每个一维数组有8个数。

        Numpy的索引默认是对最高维度进行索引,意思就是:只索引了一个维度,且这个维度是最高的维度,即其索引值为0。

         也就是说,如果我们这里对a这个多维数组进行常规的索引比如“a[4]”,就意味着我们对a数组的最高维度3维进行索引,而通过我们在前面对多维数组形状的理解可以得知,3维上的值表示的就是有几个2维。这里3维对应的值是8,说明有8个二维数组,所以a[4]就是去除第5个二维数组。如下图所示:

        但是除了默认的只对最高维度一个维度进行索引之外,numpy的多维数组还允许我们同时索引多个维度,方法就是加逗号“,”。我们只需要通过用逗号进行分割,便可以对多个维度进行索引。例如,这里的数组a有3个维度,那么我们最多可以通过添加两个逗号来对a中具体某一个数进行索引,如下图,我们指定索引[1, 0 ,2]表明我们希望得到数组a中第2个二维数组中的第一个一维数组中的第3个数。

切片 

        切片就很简单了,就是对某一个维度进行切片的操作。我们还可以同时对多个维度进行切片的操作。如下我们就是希望得到前面两个2维数组中,各自的1维数组中的第3个数。

 

 

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

诺坎普的风间

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值