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

如何解决运行PCA马氏距离异常检测代码时出现'numpy.ndarray' object is not callable错误

错误原因

报错的核心原因是变量名与函数名重名,覆盖了原函数引用:
你自定义的协方差矩阵计算函数名为cov_matrix,而主代码中调用该函数时,将第一个返回值的变量名也设为了cov_matrix:

cov_matrix, inv_cov_matrix = cov_matrix(data=data_train)

第一次执行该行时cov_matrix还指向你定义的函数,可正常调用,但执行完成后cov_matrix就会被覆盖为函数返回的协方差矩阵(numpy.ndarray类型),如果后续再次调用cov_matrix(),Python会尝试把numpy数组作为函数调用,就会触发'numpy.ndarray' object is not callable报错。

修复方案
  1. 重命名返回值变量,避免和函数名冲突即可:
# 修正后写法
cov_mat, inv_cov_mat = cov_matrix(data=data_train)
  1. 额外注意你代码存在缩进错误:当前所有主代码段的缩进层级错误,完全落在了MD_threshold函数的定义范围内,运行时主代码不会被执行,需要把所有主代码行向左取消缩进,调整到和其他函数同级的全局作用域下。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 05:39:02