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

Python3.x调用np.maximum.outer处理pandas Series报NotImplementedError求助

问题原因

适配Python3的新版pandas框架未实现numpy通用函数的outer方法对Series类型的支持,你调用RCA.sum()得到的是pandas Series对象,直接传入np.maximum.outer就会触发你遇到的NotImplementedError报错。

可行解决方案

最简单的绕过方式是将Series转换为numpy数组后再执行outer计算,数值计算逻辑和你原来Python2环境下的运行结果完全一致,可直接复用后续计算逻辑。

最简实现代码

import numpy as np
import pandas as pd

# 原有RCA矩阵定义保持不变
RCA = pd.DataFrame(
  data=[
    (1,0,0,0),
    (1,1,1,0),
    (0,0,1,0),
    (0,1,0,1),
    (1,0,1,0)],
    columns=['ct1','ct2','ct3','ct4'],
    index=['ind_1','ind_2','ind_3','ind_4','ind_5'])

norms = RCA.sum()
# 仅需修改这一行,将Series转为numpy数组后调用outer
norm = np.maximum.outer(norms.to_numpy(), norms.to_numpy())
proximity = RCA.T.dot(RCA).div(norm)

可选:生成带索引的norm DataFrame

如果你需要norm变量保留行列标签和DataFrame结构方便后续校验,可补充一步转换:

norms = RCA.sum()
norm_arr = np.maximum.outer(norms.to_numpy(), norms.to_numpy())
# 给生成的矩阵加上和列名对应的行列索引
norm = pd.DataFrame(norm_arr, index=norms.index, columns=norms.index)
proximity = RCA.T.dot(RCA).div(norm)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 00:54:06