numpy多维数组索引问题

 更新时间:2023年05月10日 09:48:51   作者:dandeseed  
这篇文章主要介绍了numpy多维数组索引的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

numpy多维数组索引

切片索引

python的numpy中的多维数组,有时候需要定位到数组中的某些区域元素的位置。

  • 一维

一维数组很简单,我们可以直接指定索引,或者使用切片索引。

比如: data[0],这时候输出单个具体数值,没有维度

data[:3],这时候输出一个一维的子数组

  • 二维

二维数组也不难理解

data[0,1] 定位一个指定的具体数值,没有维度

data[0,:]定位一维数组

data[:,:] 定位二维数组

  • 三维

三维数组有些难以理解,之前遇到的三维数组有点蒙圈,现在重点理解一下。

比如现在创建一个三维数组

array([[[ 0,  1,  2],
        [ 3,  4,  5],
        [ 6,  7,  8]],
       [[ 9, 10, 11],
        [12, 13, 14],
        [15, 16, 17]],
       [[18, 19, 20],
        [21, 22, 23],
        [24, 25, 26]]])

data[:,:,1] 会定位输出一个二维数组,具体怎么输出这个二维数组呢,我们把第一列的索引看作第一维,第二列索引看作第二维,第三列索引看作第三维,第三维是个确定的索引,所以我们的第三维数组将会降维的一个具体的值,最后得到的二维数组将会是第一维和第二维组成的一个二维数组。

array([[ 1,  4,  7],
       [10, 13, 16],
       [19, 22, 25]])

同理data[:,1,1]会定位输出一个一维数组,他的输出是:

array([ 4, 13, 22])

四维

四维和三维类似,具体到哪个维度的索引我们就降维哪一维

布尔索引

一维

多维数组的索引与切片(基于numpy)

根据我的理解,关于多维数组的索引与切片,不需要可以去记他的模式,这一小块,唯一需要理解的是这个多维数组的shape.只要把这个概念真正理解了,关于索引与切片问题迎刃而解了;

首先初始化上面的这样一个多维数组x,观察其x的数组结构,然后看x.shape=(2,3,3). 观察这个结果,其实含义可以理解为,后面的(3,3)是一个矩阵,表示其行数与列数,前面的2表示到底有几个这样的矩阵。你再查看其x的表示结构,是不是很好理解了。

那么现在我们要利用索引方式取特定位置上的数,注意其索引是从0开始的,那么取几个索引,看看是不是理想的结果、

根据理解,x[0][2][1]表示取第一个矩阵中,第三行第二列的数字。(注意索引是从0开始的)

如果上面的你真正理解,那么切片也不是什么困难的,下面来切一下:

基于上面的结果,这里做了两个切片。(注意切片的值。如1:3,  实际上只能取1,2  这里要注意)

其中一个切片为x[1][0][1:3]  实际上可以理解为我要在第二个矩阵中做切片。怎么切那? 取第一行的1~2列、、看看结果、、(还是要注意索引从0开始哦)

另外一个切片是x[0][2][:2]

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python代码中偏函数的使用详解

    Python代码中偏函数的使用详解

    Python中的偏函数是来自函数式编程的一个强大工具,它的主要目标是减少函数调用的复杂性,本文将详细介绍偏函数的具体使用,需要的小伙伴可以了解下
    2023-12-12
  • Python数据分析之绘制m1-m2数据

    Python数据分析之绘制m1-m2数据

    这篇文章主要介绍了Python数据分析之绘制m1-m2数据,文章基于python的相关资料展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-05-05
  • Python删除Java源文件中全部注释的实现方法

    Python删除Java源文件中全部注释的实现方法

    这篇文章主要介绍了Python删除Java源文件中全部注释的实现方法,涉及Python读取文件、正则匹配、字符串查找、替换等相关操作技巧,需要的朋友可以参考下
    2017-08-08
  • Python实现1-9数组形成的结果为100的所有运算式的示例

    Python实现1-9数组形成的结果为100的所有运算式的示例

    下面小编就为大家带来一篇Python实现1-9数组形成的结果为100的所有运算式的示例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • python自动化测试之从命令行运行测试用例with verbosity

    python自动化测试之从命令行运行测试用例with verbosity

    这篇文章主要介绍了python自动化测试之从命令行运行测试用例with verbosity,是一个较为经典的自动化测试实例,需要的朋友可以参考下
    2014-09-09
  • python之multimethod包多分派解读

    python之multimethod包多分派解读

    这篇文章主要介绍了python之multimethod包多分派问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • python 如何快速找出两个电子表中数据的差异

    python 如何快速找出两个电子表中数据的差异

    下面小编就为大家带来一篇python 如何快速找出两个电子表中数据的差异。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • 10个Python常用的损失函数及代码实现分享

    10个Python常用的损失函数及代码实现分享

    损失函数是一种衡量模型与数据吻合程度的算法。损失函数测量实际测量值和预测值之间差距的一种方式。本文为大家总结了10个常用的损失函数及Python代码实现,需要的可以参考一下
    2022-09-09
  • Django中的CBV和FBV示例介绍

    Django中的CBV和FBV示例介绍

    这篇文章主要给大家介绍了关于Django中CBV和FBV的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-02-02
  • python数据清洗中的时间格式化实现

    python数据清洗中的时间格式化实现

    本文主要介绍了python数据清洗中的时间格式化实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05

最新评论