关于Python Numpy array 的axis 的用法的总结

2023-05-16

我自己学习numpy已经很长时间了, 但一直搞不懂它array里面axis的用法 经常就是自己试一下看看axis=0 或者 axis=1 的时候会怎么样 然后再用到代码里面, 比如:

首先导入numpy和创建一个array

>>> import numpy as np
>>> a = np.array([[1,2],[10,20]])
>>> a
array([[ 1,  2],
       [10, 20]])

试试看当axis=0的时候平均值的输出:

>>> a.mean(axis=0)
array([  5.5,  11. ])

aixs=1的时候平均值的输出:

>>> a.mean(axis=1)
array([  1.5,  15. ])

看似规律就是axis=0时是按照来求平均而当axis=1时是按照来求平均值的。 但是这种方法很难应用到高维的array中去:

>>> b = np.array([[[1,2,3],[4,5,6],[7,8,9]]])
>>> b
array([[[1, 2, 3],
        [4, 5, 6],
        [7, 8, 9]]])
>>> b.shape
(1, 3, 3)
>>> b.mean(axis=0)
array([[ 1.,  2.,  3.],
       [ 4.,  5.,  6.],
       [ 7.,  8.,  9.]])
>>> b.mean(axis=1)
array([[ 4.,  5.,  6.]])

可以看出当数组的形状为(1,3,3) axis=1时并不是按照行来求平均值的, 而且axis=0时的结果就是形状为(3,3) 数值就是它本身的数组。
以上我们就可以总结出:

  • axis的数值是和数组的形状有关的。
  • 如果axis=0, 则就按照最外面的那层array计算平均值; 如果axis=1, 则就按倒数第二层的array计算平均值, 以此类推。
  • 那么我们就可以推导:既然上面的b数组是三维的形状(1,3,3) 那么就有axis=2,而且结果就是最里面那3行每行的平均值:
>>> b.mean(axis=2)
array([[ 2.,  5.,  8.]])

但是由于b只有三维(python从0开始index形状), 当我们用axis=3时,就会有错误:

>>> b.mean(axis=3)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/jinjunjie/anaconda/lib/python2.7/site-packages/numpy/core/_methods.py", line 56, in _mean
    rcount = _count_reduce_items(arr, axis)
  File "/Users/jinjunjie/anaconda/lib/python2.7/site-packages/numpy/core/_methods.py", line 50, in _count_reduce_items
    items *= arr.shape[ax]
IndexError: tuple index out of range

英文还可以的同学看看这个和这个应该会有更深刻的理解.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于Python Numpy array 的axis 的用法的总结 的相关文章

随机推荐

  • Git Commit Message 规范实践

    文章目录 背景示例FeatureBugRefactorDocsTestStyleChore 每个Merge Request只有一个Commit小结附录 背景 本文总结了项目实践中的 Commit Message 规范 任何一笔提交都是有原因
  • github push 报错的问题记录

    文章目录 背景解决办法示例 背景 当 git 执行 git push xff08 origin origin master xff09 后出现错误提示 xff1a git push origin origin master Password
  • Mac 平台 Android FFmpeg 编译与集成实践

    文章目录 FFmpeg 是什么为什么要学 FFmpeg 开发FFmpeg 编译1 编译环境准备2 FFmpeg 环境配置3 完整的脚本4 FQA 编译小结在Android Studio 中的集成集成问题记录写在最后 FFmpeg 是什么 F
  • 音频中文件大小计算公式(转)

    声卡对声音的处理质量可以用三个基本参数来衡量 xff0c 即采样频率 采样位数和声道数 采样频率是指单位时间内的采样次数 采样频率越大 xff0c 采样点之间的间隔就越小 xff0c 数字化后得到的声音就越逼真 xff0c 但相应的数据量就
  • 「设计模式」六大原则之一:单一职责小结

    文章目录 1 单一职责原则定义2 如何理解单一职责原则 xff08 SRP xff09 xff1f 3 如何判断类的职责是否足够单一 xff1f 4 类的职责是否设计得越单一越好 xff1f 5 应用体现6 应用示例18 应用示例2 xff
  • 「设计模式」六大原则之二:开闭职责小结

    文章目录 1 开闭原则定义2 如何理解 对扩展开放 对修改关闭 xff1f 3 如何做到 对扩展开放 修改关闭 xff1f 4 如何在项目中灵活应用开闭原则 xff1f 5 示例 xff1a 6 小结 xff1a 设计模式 六大原则系列链接
  • 「设计模式」六大原则之三:里氏替换原则小结

    文章目录 1 里式替换原则定义2 举例说明示例1 xff1a 示例2 xff1a 3 哪些代码明显违背了 LSP xff1f 子类违背父类声明要实现的功能子类违背父类对输入 输出 异常的约定子类违背父类注释中所罗列的任何特殊说明开发 Tip
  • 「设计模式」六大原则之四:接口隔离原则小结

    文章目录 1 接口隔离原则定义2 如何理解3 接口隔离原则与单一职责原则的区别2 举例说明4 小结 设计模式 六大原则系列链接 设计模式 六大原则之一 xff1a 单一职责小结 设计模式 六大原则之二 xff1a 开闭职责小结 设计模式 六
  • 「设计模式」六大原则之五:依赖倒置原则小结

    文章目录 1 依赖倒置原则 xff08 DIP xff09 定义4 DIP举例说明2 如何理解控制反转 xff08 IOC xff09 3 如何理解依赖注入 xff08 DI xff09 4 小结 设计模式 六大原则系列链接 设计模式 六大
  • 「设计模式」六大原则之六:最小知识原则小结

    文章目录 1 最小知识原则 xff08 LOD xff09 定义2 什么是 高内聚 呢3 什么是 松耦合 xff1f 4 应用举例 设计模式 六大原则系列链接 设计模式 六大原则之一 xff1a 单一职责小结 设计模式 六大原则之二 xff
  • Android NDK 中堆栈日志 add2line 的分析实践

    文章目录 目的常用的辅助工具分析步骤参考 目的 Android NDK 中出现的 crash 日志分析定位 xff0c 使用 addr2line 对库中定位so 动态库崩溃位置 xff0c 定位到某个函数的具体的代码行 常用的辅助工具 ad
  • Android 中关于 FileObserver类监听文件状态的实践

    文章目录 需求背景走进源码实现示例参考 需求背景 当某一个目录的文件发生变化 xff08 创建 修改 删除 移动 xff09 时 xff0c 需要给一个回调事件给其他端调用 其他场景 xff1a 阅后即焚等等 比如在 Android 的 V
  • Android10 系统 Framework 中定制实现开关机动画实践

    文章目录 写在前面 需求背景 主要问题 接口测试 权限问题对比测试 最后实现方案 其他问题 总结 写在前面 本文主要记录了在Android 10 系统 定制开关机动画时遇到的权限 读写 问题以用开关机动画资源的流程 文件要求等问题 涉及知识
  • VirtualBox 报错Interface ('VirtualBox Host-Only Ethernet Adapter') is not a Host-Only Adapt

    前几天用VBox虚拟机的时候 xff0c 忽然打不开了 xff0c 提示 无法为虚拟机打开一个新任务 xff0c 详细错误信息 Interface VirtualBox Host Only Ethernet Adapter is not a
  • BT中的磁力链接(转)

    注意 xff1a 磁力链接不是迅雷的 xff0c 而是BT网络中的一种协议 磁力链接与种子文件 磁力链接并不是一个新概念 xff0c 早在2002年 xff0c 相关的标准草稿就已经制定了 但直到2012年海盗湾为规避版权问题删除了站点上的
  • 如何利用GitHub Pages免费搭建个人网站以及绑定自己的域名

    拥有自己的个人网站 xff0c 无可否认是能增加学习Web开发的动力的 本笔记记录使用GitHub Page xff0c 免费搭建个人网站 xff0c 以及如何链接自己的域名 写在前面 xff1a 什么是GitHub Pages 根据官网的
  • 关于系统托盘图标(systemtray)无法显示问题的解决

    http blog csdn net robin7513 archive 2010 03 22 5403991 aspx 最近在一个程序中使用了系统托盘图标 xff08 systemtray xff09 xff0c 用于提示信息和快捷操作
  • Android Studio删除安装插件

    win 系统 进入 C Users Administrator AppData Roaming Google AndroidStudio4 1 Administrator为当前计算机用户 找到plugins文件夹 进入文件夹删除安装的插件即
  • windows cmd命令窗口报错 curl: (1) Protocol “‘http“ not supported or disabled in libcurl

    问题 在windows cmd命令窗口中执行curl命令 如下 报错 curl 1 Protocol 34 39 http 34 not supported or disabled in libcurl 解决方法 把curl命令中的单引号改
  • 关于Python Numpy array 的axis 的用法的总结

    我自己学习numpy已经很长时间了 xff0c 但一直搞不懂它array里面axis的用法 经常就是自己试一下看看axis 61 0 或者 axis 61 1 的时候会怎么样 然后再用到代码里面 xff0c 比如 xff1a 首先导入num