资讯专栏INFORMATION COLUMN

numpy数组维度理解终结版

LeexMuller / 2192人阅读

摘要:写在前面可能你会不相信,我是从玩中过来的,我觉得有必要记录一下,这个坑还非踩不可为了说的清楚一点儿,我多铺垫一点儿,先说说数组维度的理解引子老铁们猜一猜长啥样我猜你还没到点我到底想说啥,还是一头雾水,对吧哈哈别揍我,关子卖的挺大,我到底想说

写在前面

可能你会不相信,我是从玩pytorch中过来的,我觉得有必要记录一下,transpose这个坑还非踩不可,为了说的清楚一点儿,我多铺垫一点儿,先说说numpy数组维度的理解

引子
>>> a = np.arange(start=0, stop=24)
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])
>>> a = a.reshape(4, 3, 2)
>>> # 老铁们猜一猜长啥样
>>> a
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]]])
>>> # 我猜你还没get到点
>>> a.shape
(4, 3, 2)
>>> # 我到底想说啥,还是一头雾水,对吧??哈哈

别揍我,关子卖的挺大,我到底想说啥呢??
可能多用来处理图片的缘故,咱们多用二维数组,二维数组array.shape返回的元组,[0]是有几行的意思(也就是数组所谓的),[1]是有几列的意思(也就是数组所谓的)
而上面引例中,你可以把它理解为四通道的图片,而每一通道可以多带带视作一张灰度图, 这样说应该没问题吧?(希望大家能理解),所以按照咱们之前在二维图片的理解,a.shape返回的元组应该有[0]是图片的宽(有几行),[1]是图片的长(有几列),[2]是图片的通道数
所以a.shape应该为:(3, 2, 4)三行两列四通道

然而实际上,a.shape返回的元组是(4, 3, 2),该怎么理解呢??
我这里提出一种解释(只方便理解,也不知道对不对哈)

咱们初次看三维数组a
扒开它的第一层皮,看到了四个二维数组:
       [[ 0,  1],
        [ 2,  3],
        [ 4,  5]],

       [[ 6,  7],
        [ 8,  9],
        [10, 11]],

       [[12, 13],
        [14, 15],
        [16, 17]],

       [[18, 19],
        [20, 21],
        [22, 23]]
而你看到的4个二维数组所在的维度就是三维数组中所谓的第一维shape[0]

取这4个二维数组中的第一个
把它的皮剥掉
        [ 0,  1],
        [ 2,  3],
        [ 4,  5]
没错,我想说的就是,这3个一维数组所在的维度就是三维数组中所谓的第二维shape[1]

咱有始有终,取这3个一维数组中的第一个
把它的皮剥掉,
        0, 1
只剩下两个常数,嗯嗯,这俩常数就是三维数组中所谓的第三维shape[2]

总结一下

看见高维度数组,不要慌,从外向里依次"剥皮",就分别是数组的第1, 2, 3......维度
下一篇博客写transpose函数

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/45251.html

相关文章

  • python综合学习三之Numpy和Pandas

    摘要:本章学习两个科学运算当中最为重要的两个模块,一个是一个是。这种工具可用来存储和处理大型矩阵,比自身的嵌套列表结构要高效的多该结构也可以用来表示矩阵。专为进行严格的数字处理而产生。可以通过函数对相应值进行打印检验。 本章学习两个科学运算当中最为重要的两个模块,一个是 numpy,一个是 pandas。任何关于数据分析的模块都少不了它们两个。 一、numpy & pandas特点 NumP...

    tinylcy 评论0 收藏0
  • Python数据分析 - numpy

    摘要:前言以下简称是数据分析必不可少的第三方库,的出现一定程度上解决了运算性能不佳的问题,同时提供了更加精确的数据类型。因此,理解的数据类型对数据分析十分有帮助。一维数据由对等关系的有序或无序数据构成,采用线性方式组织,可以用数组表示。 前言 NUMPY(以下简称NP)是Python数据分析必不可少的第三方库,np的出现一定程度上解决了Python运算性能不佳的问题,同时提供了更加精确的数据...

    CHENGKANG 评论0 收藏0
  • Numpy中的通用函数和聚合

    摘要:概述在中存在着通用函数和聚合去对数据进行处理通过向量进行对数据数组的计算而这些向量主要依靠一些通用函数而聚合是对面对大量数据时获取描述性统计信息的方法。三角函数提供了大量好用的通用函数,其中对于数据科学家最有用的就是三角函数。 showImg(https://segmentfault.com/img/remote/1460000018925263); 概述 在Numpy中存在着通用函数...

    xorpay 评论0 收藏0
  • 【数据科学系统学习】Python # 数据分析基本操作[一] numpy

    摘要:提供了使我们能够快速便捷地处理结构化数据的大量数据结构和函数。结构化数据,例如多维数据矩阵表格行数据,其中各列可能是不同的类型字符串数值日期等。基础数组和矢量计算高性能科学计算和数据分析的基础包。 本篇内容为整理《利用Python进行数据分析》,博主使用代码为 Python3,部分内容和书本有出入。 利用 Python 进行科学计算的实用指南。本书重点介绍了用于高效解决各种数据分析问...

    wushuiyong 评论0 收藏0
  • Numpy 中文用户指南 2. 快速启动

    摘要:注意和标准库类并不相同,后者只处理一维数组和提供少量功能。然而,指定参数你可以吧运算应用到数组指定的轴上通用函数提供常见的数学函数如和。在中,这些叫作通用函数。函数,另一方面,将一维数组以行组合成二维数组。 原文:Quickstart tutorial 译者:Reverland 来源:试验性NumPy教程(译) 2.1 先决条件 在阅读这个教程之前,你多少需要知道点python。如...

    shiina 评论0 收藏0

发表评论

0条评论

LeexMuller

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<