关于Numpy中数组维度的理解

 更新时间:2023年09月23日 10:22:58   作者:huahuahuahhhh  
这篇文章主要介绍了关于Numpy中数组维度的理解,多维Numpy数组也可以叫张量(tensor),当前所有机器学习系统都是使用张量作为基本数据结构,张量是一个数据容器,它包含的数据几乎是数值数据,因此它也是数字的容器,需要的朋友可以参考下

一、数组中的各个维度表示的是什么?

为了便于理解,用单位体表示,剥去一层中括号后,得到的数据。

1. 以二维数组为例

import numpy as np
np.random.seed(0)
arr2 = np.random.randint(0,9,size=(4,3))
print(arr2)

[[5 0 3]
 [3 7 3]
 [5 2 4]
 [7 6 8]]

这个二维数组,总共有两层中括号。在剥去最外层的中括号后,是4个长度为3的一维数组: [5 0 3],[3 7 3],[5 2 4],[7 6 8] 。拿任意一个单位体举例,如 [5 0 3] ,剥去中括号,是3个单位体 5,0,3 .

2. 以3维数组举例

arr2 = np.random.randint(0,9,size=(2,4,3))

[[[5 0 3]
  [3 7 3]
  [5 2 4]
  [7 6 8]]

 [[8 1 6]
  [7 7 8]
  [1 5 8]
  [4 3 0]]]

这个三维数组,总共有三层中括号。在剥去最外层的中括号后,是2个(4,3)的数组(绿色方框表示的):

在这里插入图片描述

后面就和二维数组的表示方法相同。 数组剥去最外层中括号后,得到的单位体的个数表示第0个维度( axis=0 )的大小,次外层就是第二个维度( axis=1 )的大小,以此类推。

二、数组中按维度计算

二维数组中按维度求和

arr.sum(axis=0)

数组是尺寸是(4,3),按第0个维度求和后,维度为 (3,)

在这里插入图片描述

arr.sum(axis=1)

在这里插入图片描述

维数组按维度求和

1 axis=0

数组是尺寸是(2,4,3),按第0个维度求和后,维度为 (4,3) .两个(4,3)的矩阵,对应位置上的元素求和。 剥去最外层中括号后的单位体上对应元素求和

在这里插入图片描述

2 axis=1

过程: 数组是尺寸是(2,4,3),剥去最外层的中括号,是两个单位体(4,3)——最外层单位体。两个单位体再剥去一层中括号,得到4个(3,)的数组——次外层单位体。每个最外层单位体内的次外层单位体上相应位置的元素分别相加。 尺寸是(2,4,3)按 axis=1 相加后,得到的结果的尺寸是 (2,3)

在这里插入图片描述

3 axis=2

依照上面的做法,axis=?就将中括号剥到第几层,然后对应位置上的元素相加。

过程: 数组是尺寸是(2,4,3),剥去最外层的中括号,是两个单位体(4,3)——最外层单位体。两个单位体再剥去一层中括号,得到4个(3,)的数组——次外层单位体。4个单位体再剥去最外层的中括号,得到3个次次单位体——标量。

在这里插入图片描述

axis = 2
print('*'*10,' axis = %a'%(axis),'*'*10)# 这种格式输出方式
print(arr.sum(axis=axis))

在这里插入图片描述

到此这篇关于关于Numpy中数组维度的理解的文章就介绍到这了,更多相关Numpy中数组维度内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解Python+OpenCV实现图像二值化

    详解Python+OpenCV实现图像二值化

    图像二值化就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果的过程。本文将通过Python+OpenCV实现这一过程,感兴趣的可以学习一下
    2022-05-05
  • jupyter 使用Pillow包显示图像时inline显示方式

    jupyter 使用Pillow包显示图像时inline显示方式

    这篇文章主要介绍了jupyter 使用Pillow包显示图像时inline显示方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • Python操作PostgreSQL数据库的基本方法(增删改查)

    Python操作PostgreSQL数据库的基本方法(增删改查)

    PostgreSQL数据库是最常用的关系型数据库之一,最吸引人的一点是它作为开源数据库且具有可拓展性,能够提供丰富的应用,这篇文章主要给大家介绍了关于Python操作PostgreSQL数据库的基本方法,文中介绍了连接PostgreSQL数据库,以及增删改查,需要的朋友可以参考下
    2023-09-09
  • django 连接数据库出现1045错误的解决方式

    django 连接数据库出现1045错误的解决方式

    这篇文章主要介绍了django 连接数据库出现1045错误的解决方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • python中字符串最常用的十三个处理操作记录

    python中字符串最常用的十三个处理操作记录

    这篇文章主要给大家介绍了关于python中字符串最常用的13个处理操作的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • Python使用QRCode模块生成二维码实例详解

    Python使用QRCode模块生成二维码实例详解

    这篇文章主要介绍了Python使用QRCode模块生成二维码实例详解的相关资料,需要的朋友可以参考下
    2017-06-06
  • Django利用Channels+websocket开发聊天室完整案例

    Django利用Channels+websocket开发聊天室完整案例

    Channels是Django团队研发的一个给Django提供websocket支持的框架,使用它我们可以轻松开发需要长链接的实时通讯应用,下面这篇文章主要给大家介绍了关于Django利用Channels+websocket开发聊天室的相关资料,需要的朋友可以参考下
    2023-06-06
  • jupyter notebook运行命令显示[*](解决办法)

    jupyter notebook运行命令显示[*](解决办法)

    这篇文章主要介绍了jupyter notebook运行命令显示[*],文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • spark dataframe全局排序id与分组后保留最大值行

    spark dataframe全局排序id与分组后保留最大值行

    这篇文章主要为大家介绍了spark dataframe全局排序id与分组后保留最大值行实现详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • Django与JS交互的示例代码

    Django与JS交互的示例代码

    本篇文章主要介绍了Django与JS交互的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08

最新评论