首页 > 编程语言 > 详细

numpy多维数组理解

时间:2019-03-23 00:33:21      阅读:196      评论:0      收藏:0      [点我收藏+]

转载https://blog.csdn.net/nianzu_ethan_zheng/article/details/79038212





Numpy高维数据的理解

当实际处理多维变量时,尤其需要使用到Tensorflow这样深度学习库,比如,图片数据批次其形状为:N×H×W×C, 高维序列格式存在难以理解的问题。因此如何读懂这些高维序列是一个很基础的问题。

列表和1-D Numpy array

技术分享图片
如何检索一个列表中的元素,上图给出了很好的描述

嵌套列表和2-D Numpy序列

当嵌套两个List事情就变得很有趣了。2-D表示:矩阵、数据库里的表格、灰度图像

技术分享图片
上面是一个List里面嵌套了三个List,每个List都表示长方形表中的一个行向量

在Python中访问一个嵌套列表,通常使用两个方括号,具体如下:
技术分享图片

下面是一些小例子:
技术分享图片

我们将嵌套结构看做一棵树
技术分享图片

2-D numpy arrays

V=np.array([[1, 0, 0],[0,1, 0],[0,0,1]])
  • 1

2-D Numpy arrays 的加法运算

X=np.array([[1,0],[0,1]])
Y=np.array([[2,1][1,2]])
Z=X+Y;
Z:array([[3,1],[1,3]])
  • 1
  • 2
  • 3
  • 4

技术分享图片

2-D Numpy arrays 的乘法运算

X=np.array([[1,0],[0,1]])
Y=np.array([[2,1][1,2]])
Z=X*Y;
Z:array([[2,0],[2,0]])
  • 1
  • 2
  • 3
  • 4

技术分享图片

嵌套三个列表和3-DNumpys arrays

可以看到相比于2-D列表,3-DNumpys arrays增加了一个方括号
技术分享图片

我们可以这样检索其中一个元素。
技术分享图片

为了生活化场景,基本的二维表格形状不变,而增加了相应的多个表格,类似于地址- 楼层- 房间号的表达方式
技术分享图片

而检索过程也类似于这样过程
技术分享图片

nDNumpy序列的加法表达是这样:
技术分享图片

4DNumpy

技术分享图片

技术分享图片

思考一下:
1. 如何表达如下矩阵Tensor?
1×2×2×1
3×3×1×1
3×3×2×1
3×3×2×2

给出答案:

[[[[1],[1]],
   [[1],[1]]]]

[[[[1]],[[1]],[[1]]],
 [[[1]],[[1]],[[1]]],
 [[[1]],[[1]],[[1]]]]

[[[[1],[1]],[[1],[1]],[[1],[1]]],
 [[[1],[1]],[[1],[1]],[[1],[1]]],
 [[[1],[1]],[[1],[1]],[[1],[1]]]]

[[[[1,1],[1,1]],[[1,1],[1,1]],[[1,1],[1,1]]],
 [[[1,1],[1,1]],[[1,1],[1,1]],[[1,1],[1,1]]],
 [[[1,1],[1,1]],[[1,1],[1,1]],[[1,1],[1,1]]]] 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

在原文章中,表达较为清晰,适合新手入门。
Reference:From Python Nested Lists to Multidimensional numpy Arrays

                    <link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-258a4616f7.css" rel="stylesheet">
            </div>

numpy多维数组理解

原文:https://www.cnblogs.com/yqxg/p/10582215.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!