我们在描述一个多维数组的时候,经常会用到两个参数:维度(dimension)和形状(shape),以二维数组为例,我们可以用矩阵来形象地联想这两个参数,对于矩阵,显然我们最常见的矩阵是二维的,所以他的dim参数就是2,而对于形状,可以想象成这个矩阵(矩形)的的高和宽,比如一个4行3列的矩阵,他的高就是4,宽就是3。所以他的shape参数就是(4,3),这是一对数字,因此在python中使用元祖(tuple)数据结构来表示这个属性。我们可使用以下代码来进行演示:

import numpy as np
data = np.array([[1,2,3],[4,5,6],[7,8,9],[0,0,0]])print(data)
print(data.ndim)
print(data.shape)

在运行之后,我们可以得到以下结果:

[[1 2 3][4 5 6][7 8 9][0 0 0]]
2
(4, 3)
[Finished in 1.2s]

对于大于二维的多维数组,我们可以认为就是数组的数组的数组…,我们可以用嵌套(类似于套娃结构)来描述,是几维的就有多少层嵌套。但是一般而言,我们用二维的数组就够用了,三维数组被称为张量(Tensor),在机器学习中有非常好的应用。

对于三维数组,我们可以使用以下代码进行演示:

import numpy as np
data_1dim = np.array([1,2,3,4])
data_2dim = np.array([data_1dim,data_1dim,data_1dim])
data_3dim = np.array([data_2dim,data_2dim])print(data_3dim)
print(data_3dim.ndim)
print(data_3dim.shape)

我们打印出三维数组的形态如下:

[[[1 2 3 4][1 2 3 4][1 2 3 4]][[1 2 3 4][1 2 3 4][1 2 3 4]]]
3
(2, 3, 4)
[Finished in 1.6s]

可以看出,他是数组的数组的数组,我们在分析多维数组的时候,要理清楚结构,这个要根据配对的方括号来进行判断,找到级别的,比如这里第一队括号相对于是爷爷级别的,其他的和爷爷平级的就是第一维的元素,然后括号里面的又有括号,那就是爸爸级别的,括号里面的括号里面的括号,就是儿子级别的,数组的shape就相当于一共有几个爷爷,一个爷爷生了几个爸爸,一个爸爸生了几个儿子,这样就可以形象地理解多维数组的结构了,不过我们在使用的时候,用到二维数组就够了,三维以上的理解起来和维护起来太麻烦了,不利于软件工程的开发。

python中使用ndim和shape属性获取ndarray数据的维度、长度、形状等参数相关推荐

  1. python中ndim是什么_使用Python中的ndim和shape属性获取darray数据的维度、长度、形状和其他参数,python,ndarray,等...

    我们在描述一个多维数组的时候,经常会用到两个参数:维度(dimension)和形状(shape),以二维数组为例,我们可以用矩阵来形象地联想这两个参数,对于矩阵,显然我们最常见的矩阵是二维的,所以他的 ...

  2. 非常易于理解‘类'与'对象’ 间 属性 引用关系,暨《Python 中的引用和类属性的初步理解》读后感...

    关键字:名称,名称空间,引用,指针,指针类型的指针(即指向指针的指针) 我读完后的理解总结: 1. 我们知道,python中的变量的赋值操作,变量其实就是一个名称name,赋值就是将name引用到一个 ...

  3. python定义一个dog类 类属性有名字毛色体重_全面了解python中的类,对象,方法,属性...

    python中一切皆为对象,所谓对象:我自己就是一个对象,我玩的电脑就是对象,坐着的椅子就是对象,家里养的小狗也是一个对象...... 我们通过描述属性(特征)和行为来描述一个对象的.比如家里的小狗, ...

  4. Python中使用sentinelsat包自动下载Sentinel系列数据

    Python中使用sentinelsat包自动下载Sentinel系列数据 前言 普通下载 使用工具批量下载Sentinel 数据 使用SNAP批量下载 第三方软件或网站批量下载 Sentinel-1 ...

  5. python中使用zip函数基于两个列表数据list创建字典dict数据(Create a dictionary by passing the output of zip to dict)

    python中使用zip函数基于两个列表数据list创建字典dict数据(Create a dictionary by passing the output of zip to dict) 目录

  6. python中如何将bytes格式转换为numpy ndarray

    python中如何将bytes格式转换为numpy ndarray python中如何将bytes格式转换为numpy ndarray

  7. python时间函数纳秒_在Python中以秒和纳秒获取POSIX / Unix时间?

    我一直在努力找到一种方法来获取自1970-01-01 00:00:00 UTC以来的时间,以秒为单位,在python中以纳秒为单位,我找不到能给我正确精度的任何东西. 我尝试过使用时间模块,但是精度只 ...

  8. python中的类实例的属性查找过程

    __getattr__.__getattribute__对属性查找的影响 没有__getxxx__的例子 class Book:press = "人民邮电出版社"class Lan ...

  9. python找不到idleble_如何在python中使用pygatt从BLE设备获取通知?

    我正在使用 python开发一个 Linux应用程序,它将连接到我的BLE设备并通过通知特性来获取数据.我正在使用 pygatt进行BLE通信.我可以成功连接并绑定到设备并读取/写入特性.即使我可以订 ...

最新文章

  1. GitHub 热榜:中国博士开发可交互全球疫情地图,登上柳叶刀!
  2. Oracle 性能相关常用脚本(SQL)
  3. POJ-3278-Catch That Cow
  4. Go的net/http
  5. 命令行打印文件树列表: tree 1
  6. 【clickhouse】ClickHouseException code: 225 ZooKeeper session has been expired
  7. java修改异常状态码_RxJava2 + Retrofit2 完全指南 之 统一状态码/Exception处理
  8. sql2000执行sql2005导出的数据脚本时出现“提示含有超过64K限度的行”(转)
  9. pytorch 动态图机制
  10. Oracle cmd sqlplus 命令
  11. 优动漫PAINT提高创作效率的小技巧——中间色与近似色
  12. 瑞幸的野望,小鹿茶的突袭
  13. 给研发培训资料两篇(架构设计大数据)
  14. 午餐不知道吃什么?用 Python 爬美团App评论选餐!
  15. 《JavaScript前端开发案例教程》------第8章事件课后练习
  16. 设置页面图标和动态title
  17. DELL EqualLogic PS6100存储详解及数据恢复解决办法
  18. 华秋DFM新功能全网上线,助力PCBA可焊性分析
  19. 实战:盒子的self-xss(盒子已忽略)
  20. 韩剧机器人题材的_韩剧推荐(不可错过系列)

热门文章

  1. 为什么super()和this()调用语句不能同时在一个构造函数中出现的解释
  2. python调用exe程序 传入参数_python运行带参数传入的exe文件
  3. 深度学习训练过程中的技巧深刻总结
  4. python方式对接AWS的kinesis
  5. 前端工程师: 我用gup4.0搭建一个前端脚手架
  6. Win32 .Net QA 200509
  7. 【CSDN编程竞赛】参赛经历分享及AK代码分享
  8. 给golang增加websocket模块
  9. AI艺术的背后:详解文本生成图像模型【基于 VQ-VAE】
  10. opengl png图片 qt_Qt翻页效果实现(四):OpenGL图像渲染