【问题标题】:Why does importing 'comb' from scipy fail when using numpy 1.13.3?为什么在使用 numpy 1.13.3 时从 scipy 导入“comb”会失败?
【发布时间】:2019-10-11 03:45:42
【问题描述】:

我正在研究 Google Collab 中的特征选择和分类问题。我能够使用 numpy 版本 1.11.3 执行该程序。不幸的是,今天我在使用 numpy(1.13.3) 时遇到了一个错误,因为 scipy 在 Collab 中不再支持 1.11.3。我正在使用 numpy 1.11.3,因为它对我有用,尽管它可能已经过时了。在 python 环境中似乎不能再导入'comb'。我怎样才能使它与新版本的 numpy 一起工作?另外,我如何以及在哪里检查将来可能出现的其他库的此类不兼容问题?

我尝试手动输入“from scipy.misc import comb”和“from scipy import comb”,但还是不行。

import numpy as np
from sklearn.feature_selection import SelectPercentile, f_classif
from time import time

np.seterr(divide='ignore', invalid='ignore');
selector=SelectPercentile(f_classif , percentile = 8)
t0 = time()
X_newDoS = selector.fit_transform(X_DoS,Y_DoS)
print ('Time =', time() - t0)

我得到的错误信息是:“ImportError: cannot import name 'comb'”

【问题讨论】:

  • 你可以尝试安装 scipy1.3 吗?它应该自动更新 numpy,因为它是一个依赖项。和 Numpy 1.16,如果它不自行更新
  • 您显示的代码似乎没有导入comb,请显示您的导入或完整的回溯。
  • @Eskapp 它适用于较新版本的 numpy。只是想知道为什么它在一周前工作正常时发布这个问题时没有工作。无论如何,谢谢。
  • @ev-br 我认为collab不再支持安装1.13以下的numpy版本。

标签: python-3.x numpy scikit-learn scipy google-colaboratory


【解决方案1】:

根据 scipy 的文档,

from scipy.misc import comb 

自 1.0.0 版以来已被弃用。应该使用

from scipy.special import comb 

相反。

https://docs.scipy.org/doc/scipy-1.2.1/reference/generated/scipy.misc.comb.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-18
    • 1970-01-01
    • 2015-02-25
    • 2021-03-29
    • 1970-01-01
    • 2018-12-25
    • 2018-10-14
    • 2019-12-21
    相关资源
    最近更新 更多