You need to enable JavaScript to run this app. Python中如何在循环里按名称调用NumPy数组的不同统计方法
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何在循环里按名称调用NumPy数组的不同统计方法

问题解决方法

报错本质原因

mat.names()无法运行,是因为Python会默认把点号后的names当成固定的属性名去查找,不会自动把循环变量里存储的字符串(比如"mean"、"max")解析成对应的方法名来调用。

适配当前场景的实现逻辑

直接用Python内置的getattr()函数即可,这个函数的作用就是通过字符串形式的名称,访问对象对应的属性或方法,完全匹配你要循环调用不同统计方法的需求。

修改后的可运行代码

import numpy as np
A = np.arange(9).reshape(3,3)
B = np.array([3,4,6,3,2,7,0,1,7]).reshape(3,3)
#################
def calc_stats(mat):
    for stat_name in ["mean", "max", "min"]:
        # 三个参数依次是:要操作的数组对象、字符串形式的方法名、拿到方法后加括号执行
        print(getattr(mat, stat_name)())

calc_stats(A)
calc_stats(B)

实用优化

原代码直接打印数值,多个统计结果混在一起很难区分对应关系,可以在输出时同步带上统计项名称,读结果更方便:

def calc_stats(mat):
    for stat_name in ["mean", "max", "min"]:
        stat_val = getattr(mat, stat_name)()
        print(f"{stat_name}: {stat_val:.2f}")

优化后的输出示例:

mean: 4.00
max: 8.00
min: 0.00
mean: 3.67
max: 7.00
min: 0.00

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.01 08:57:03