M2 Mac上ARPACK失效,如何更新Scipy特征值计算代码?
解决Scipy新版中eigsh导入报错的问题
问题原因
新版Scipy(1.7.0及以上)重构了模块结构,scipy.sparse.linalg.eigen.arpack路径被移除,相关函数整合到了scipy.sparse.linalg下,旧导入路径不再生效。
解决方案
- 替换导入语句
将原来的导入代码:
from scipy.sparse.linalg.eigen.arpack import eigsh as largest_eigsh
替换为:
from scipy.sparse.linalg import eigsh as largest_eigsh
- 保留原有调用逻辑
你代码中计算特征值的语句无需修改:
_, ua_i = largest_eigsh(Ga_new, 1, which='LM')
eigsh函数的参数(包括which='LM'指定取最大模特征值)在新版中完全兼容旧代码的行为。
内容的提问来源于stack exchange,提问作者Drusus
相关产品推荐
相关产品推荐

