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

如何在NumPy灵活类型数组中计算x、y、z列的列和

解决NumPy结构化数组的x、y、z列求和问题

嘿,这个需求用NumPy的结构化数组特性就能轻松搞定,我给你一步步拆解:

首先先确认你定义的结构化数组(记得先导入NumPy哦):

import numpy as np
M = np.array([(0,1.1,2.1,3.1),(1,4,5,6),(2,10,11,12)], dtype=[('N','i4'),('x','f8'),('y','f8'),('z','f8')])

核心实现代码

要快速获取x、y、z各列的求和向量,直接用字段索引结合sum()方法就行:

sum_vector = M[['x', 'y', 'z']].sum(axis=0)
print(sum_vector)

输出结果

array([15.1, 18.1, 21.1])

简单解释

  • M[['x', 'y', 'z']]:从结构化数组里精准提取出包含x、y、z三个坐标字段的子数组
  • .sum(axis=0):沿着行方向(也就是对每一列)求和,最终得到三个字段的总和组成的一维向量

如果想要保留结构化数组的格式(而非普通NumPy数组),也可以这么写:

sum_struct = np.array(
    [(M['x'].sum(), M['y'].sum(), M['z'].sum())],
    dtype=[('x_sum','f8'),('y_sum','f8'),('z_sum','f8')]
)
print(sum_struct)

对应的输出会是:

array([(15.1, 18.1, 21.1)], dtype=[('x_sum', '<f8'), ('y_sum', '<f8'), ('z_sum', '<f8')])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:47:51