当前位置: 首页 > 面试题库 >

NumPy的轴参数如何工作?

谷梁淇
2023-03-14
问题内容

有人可以确切解释axisNumPy中的参数做什么吗?

我很困惑。

我正在尝试使用该功能 myArray.sum(axis=num)

最初,我认为如果数组本身是3维,axis=0将返回三个元素,该元素由同一位置上所有嵌套项的总和组成。如果每个维度都包含五个维度,则我希望axis=1返回五个项目的结果,依此类推。

但是事实并非如此,文档也不能很好地帮助我(他们使用3x3x3数组,因此很难判断发生了什么)

这是我所做的:

>>> e
array([[[1, 0],
        [0, 0]],

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

       [[1, 0],
        [0, 1]]])
>>> e.sum(axis = 0)
array([[3, 1],
       [1, 1]])
>>> e.sum(axis=1)
array([[1, 0],
       [2, 1],
       [1, 1]])
>>> e.sum(axis=2)
array([[1, 0],
       [2, 1],
       [1, 1]])
>>>

显然,结果并不直观。


问题答案:

显然,

e.shape == (3, 2, 2)

轴上的总和是归约运算,因此指定的轴消失。因此,

e.sum(axis=0).shape == (2, 2)
e.sum(axis=1).shape == (3, 2)
e.sum(axis=2).shape == (3, 2)


 类似资料:
  • 问题内容: 我已经学会了如何根据自己的好奇心来工作。 似乎最简单的功能最难翻译为代码(我理解代码)。对每种情况的每个轴进行硬编码很容易,但是我想找到一种动态算法,可以在任何轴上以n维求和。官方网站上的文档没有帮助(仅显示结果而不显示过程),并且很难浏览Python/ C代码。 注意: 我确实弄清楚了当对一个数组求和时,指定的轴是“已删除”,即,形状为(4,3,2)且轴为1的数组的总和会得出形状为的

  • 问题内容: 从Numpy的教程中,可以使用整数对轴进行索引,例如用于列,用于行,但是我不明白为什么用这种方式对它们进行索引?当处理多维数组时,如何计算每个轴的索引? 问题答案: 根据定义,维的轴号是该维在数组内的索引。它也是在索引编制过程中用于访问该尺寸的位置。 例如,如果2D数组的形状为(5,6),则最多可以访问。因此,轴0是第一维(“行”),轴1是第二维(“列”)。在较高的尺寸中,“行”和“列

  • 问题内容: 我还没有摸索关键概念。 我想创建一个3维数组,并使用函数调用的结果填充每个单元格-即该函数将使用不同的索引多次调用并返回不同的值。 注意:自编写此问题以来,文档已更新为更清晰。 我可以用零(或为空)创建它,然后用for循环覆盖每个值,但是直接从函数中填充它似乎更干净。 听起来很完美。阅读文档听起来好像每个单元调用一次该函数。 但是当我实际尝试时… 我希望得到类似的东西: 重复4次。 我

  • 问题内容: 我在詹金斯(Jenkins)有一份工作,有2个参数。我要运行另一个没有参数的计划,并从该计划中启动所需的现有计划多次。 新计划需要安排为每15分钟运行一次(将由Jenkins的Scheduler选项完成),该计划的代码将: 连接到数据库 获取所需的记录集 开始循环记录集 存储键/值对(现有作业的参数) 结束循环 完成此操作后,我需要对存储的每个键/值对运行现有作业。我可以使用Jenki

  • 本文向大家介绍关于numpy数组轴的使用详解,包括了关于numpy数组轴的使用详解的使用技巧和注意事项,需要的朋友参考一下 概述 按照图一中aixs=0,对aixs=0上下对应的数据进行相加在学习numpy的时候,最难理解的就是轴的概念,我们知道坐标系中有轴的概念,那么两个轴是否有关联呢?为了便于理解,特写此博客进行梳理。 正文 首先数组的维数比较好理解,下面我们创建一个数组: 打印结果: b 是

  • 问题内容: 基本问题是:执行以下操作时会发生什么? 给定以下内容: 我明白那个: 与相同,直接分配给所指示的项目 与相同,即会进行加法 但是当我这样做时会发生什么 : 特别: 这和一样吗?(这不是就地操作) 如果是,在这种情况下是否有所不同: 一个指数,或 一个或 一个对象 背景 我开始研究此问题的原因是在使用重复索引时遇到了非直觉的行为: 问题答案: 您需要意识到的第一件事是,它并不完全映射到,