美文网首页
numpy多维数组的索引

numpy多维数组的索引

作者: 可能性之兽 | 来源:发表于2022-09-02 16:49 被阅读0次

(2,3) 表示两个一维数组,每个一维数组长度为3
(2,3,4) 表示两个二维数组,每个二维数组有3个一维数组,每个一维数组长度为4
(2,3,4,5) 表示两个三维数组,每个三维数组有3个二维数组,每个二维数组有4个一维数组,一维数组长度为5

numpy多维数组shape的理解_二仪式的博客-CSDN博客

通过重排一维向量或转换嵌套的Python列表来创建3D数组时,索引的含义为(z,y,x)。

第一个索引是平面的编号,然后才是在该平面上的移动:


image.png

这种索引顺序很方便,例如用于保留一堆灰度图像:这a[i]是引用第i个图像的快捷方式。

但是此索引顺序不是通用的。处理RGB图像时,通常使用(y,x,z)顺序:前两个是像素坐标,最后一个是颜色坐标(Matplotlib中是RGB ,OpenCV中是BGR ):


image.png image.png

显然,NumPy函数像hstack、vstack或dstack不知道这些约定。其中硬编码的索引顺序是(y,x,z),RGB图像顺序是:

image.png

如果数据的布局不同,则使用concatenate命令堆叠图像,并在axis参数中提供显式索引数会更方便:


image.png

如果不方便使用axis,可以将数组转换硬编码为hstack的形式:

image.png

这种转换没有实际的复制发生。它只是混合索引的顺序。

混合索引顺序的另一个操作是数组转置。检查它可能会让我们对三维数组更加熟悉。

根据我们决定的axis顺序,转置数组所有平面的实际命令将有所不同:对于通用数组,它交换索引1和2,对于RGB图像,它交换0和1:

image.png

有趣的是,(和唯一的操作模式)默认的axes参数颠倒了索引顺序,这与上述两个索引顺序约定都不相符。

最后,还有一个函数,可以在处理多维数组时节省很多Python循环,并使代码更简洁,这就是爱因斯坦求和函数

看图学NumPy:掌握n维数组基础知识点,看这一篇就够了创事记新浪科技_新浪网 (sina.com.cn)

相关文章

  • 机器学习利器之Numpy

    Numpy 多维数组 Numpy 创建N维数组 查看数组属性 shape操作 数组索引和迭代 拼接、分割 基础运算...

  • numpy多维数组的索引

    (2,3) 表示两个一维数组,每个一维数组长度为3(2,3,4) 表示两个二维数组,每个二维数组有3个一维数组,每...

  • 数据分析学习笔记(二)--numpy:数组对象相关操作

    数组和标量的运算 加、减、乘、除、平方等运算 numpy中内置的运算 数组的索引和切片 一维数组的索引和切片 多维...

  • Numpy札记5_索引迭代切片

    Numpy的数组和Python中的列表一样,能够用于索引、切片和迭代。 一维数组:和Python正常使用 多维数组...

  • Numpy入门

    Numpy对象是元素具有相同类型(通常为数字)并以整数元组作为索引的一维或多维数组。数组的索引整数元组包含的整数个...

  • python数据分析1——numpy用法

    1、数组初始化 2、数组属性 3、索引和切片 4、多维数组 5、引用机制 不同于List的使用,numpy中切片使...

  • ndarray数组的操作

    数组的索引和切片 一维数组的索引和切片: 多维数组的索引: 每个维度一个索引值,逗号分割 多维数组的切片:

  • Numpy 修炼之道(1) —— 什么是 Numpy

    Numpy 是什么 简单来说,Numpy 是 Python 的一个科学计算包,包含了多维数组以及多维数组的操作。 ...

  • Numpy入门

    第1章 Numpy数组对象 Numpy中的多维数组称为ndarray,是Numpy中最常见的数组对象 ndarra...

  • 2018-05-23

    numpy 1.numpy的多维数组切片例如: 从例子中我们可以得到结论,对于多维数组,[a:b,c:d,e:f,...

网友评论

      本文标题:numpy多维数组的索引

      本文链接:https://www.haomeiwen.com/subject/osksnrtx.html