You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

numpy.sum(axis=1)计算与np.angle数组处理规则答疑

NumPy 常见操作问题解答

关于x.sum(axis=1)的计算规则

要理解带axis参数的求和,首先要明确多维数组的轴对应关系:你创建的x是shape为(3,3,3)的三维数组,三个维度从外到内的编号依次为axis=0、axis=1、axis=2。指定某一个轴做sum运算时,会沿着该轴的方向遍历所有元素求和,运算完成后这个轴会被压缩消除。
针对axis=1的场景,结合测试数据的计算过程如下:

  • 首先固定axis=0的索引,把三维数组拆成3个独立的3×3二维矩阵:第一个矩阵元素为0-8,第二个为9-17,第三个为18-26
  • 对每个二维矩阵,沿着axis=1(也就是行方向)做列方向的累加:把同一列下所有行的数值加总
    • 第一个矩阵计算结果:0+3+6=9、1+4+7=12、2+5+8=15,对应输出第一行[9, 12, 15]
    • 第二个矩阵计算结果:9+12+15=36、10+13+16=39、11+14+17=42,对应输出第二行[36, 39, 42]
    • 第三个矩阵计算结果:18+21+24=63、19+22+25=66、20+23+26=69,对应输出第三行[63, 66, 69]
      最终输出的shape为(3,3),和你运行得到的结果完全匹配。

补充参考:

  • x.sum()不指定axis时,会把所有元素全部加总得到单个标量,也就是测试里的351
  • x.sum(axis=0)是沿最外层轴求和,把三个二维矩阵同位置的元素相加,最终得到3×3的结果
  • x.sum(axis=2)是沿最内层轴(列方向)做行方向累加,把同一行所有列的数值加总,和你给出的测试结果一致

关于np.angle(x, deg=True)的含义与数组处理逻辑

np.angle是NumPy提供的计算复数辐角(相位角)的函数:

  • 辐角的定义是复平面上复数对应点和实轴正方向的夹角,默认返回值单位是弧度,传入deg=True时单位为角度
  • 对于实数输入:正实数的辐角为0,负实数的辐角为π(弧度)/180°(角度),0的辐角为0
    你的测试代码中x是由np.arange(27)生成的非负整数数组,所有元素都是≥0的实数,因此每个元素计算得到的辐角都是0°,最终输出全0数组。
    针对数组输入,np.angle属于NumPy的逐元素通用函数(ufunc),处理逻辑非常直接:对输入数组的每个元素独立计算辐角,输出数组和输入数组的shape完全一致,支持广播规则,不会做维度压缩操作。
    举个简单测试例:运行np.angle([1, -1, 1+1j], deg=True)会得到返回值[0., 180., 45.],分别对应正实数、负实数、45°相位复数的计算结果。

内容的提问来源于stack exchange,提问作者stackbiz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 14:24:21