使用np.argmax时keepdims参数报错问题求助
问题排查与解决步骤
1. 检查NumPy版本
np.argmax的keepdims参数是在NumPy 1.25.0版本才正式引入的,而np.amax的keepdims参数很早就支持。如果你的NumPy版本低于1.25.0,调用np.argmax(..., keepdims=True)必然会报错。
先在终端或代码里执行以下命令确认版本:
import numpy as np print(np.__version__)
如果版本低于1.25.0,直接升级即可:
- 使用pip升级:
pip install --upgrade numpy>=1.25.0
- 使用conda升级(如果你用conda环境):
conda install numpy>=1.25.0
2. 排查环境冲突问题
你提到之前代码能运行、后续运行其他代码后出问题,大概率是其他代码的依赖修改了你的NumPy版本。重装Anaconda后,默认base环境的NumPy版本可能低于1.25.0,或者你没有激活之前使用的虚拟环境。
- 检查是否使用了虚拟环境:如果之前是在某个conda虚拟环境下运行代码,重装Anaconda后需要重新创建并激活该环境,再安装对应版本的NumPy。
- 避免全局环境污染:尽量用虚拟环境隔离不同项目的依赖,防止互相影响。
3. 检查代码是否存在函数覆盖
极少数情况下,代码中可能不小心定义了自己的argmax函数,覆盖了numpy的原生函数,导致调用时找不到keepdims参数。检查代码中是否有类似这样的定义:
def argmax(arr): # 自定义的argmax实现,没有keepdims参数 ...
如果有,修改函数名避免冲突即可。
内容的提问来源于stack exchange,提问作者Kathrin_L_A
相关产品推荐
相关产品推荐

