在R中使用带有网状包的Python-找不到Numpy

时间:2019-01-07 06:58:41

标签: r numpy scikit-learn anaconda reticulate

我开始使用reticulate软件包,该软件包允许在R环境中使用Python,并希望通过sklearn执行均值漂移聚类。所以这是我的尝试:

> library(reticulate)
> np <- import('numpy')
> sklearn <- import('sklearn')
> sklearn.MeanShift <- sklearn$cluster$MeanShift
> x <- matrix(rnorm(20), 10, 2)
> sklearn.MeanShift(x)
Error in py_call_impl(callable, dots$args, dots$keywords) : 
  Evaluation error: Required version of NumPy not available: installation of Numpy >= 1.6 not found.

如您所见,导入numpy时调用sklearn函数时未发现reticulate::import,而numpy没有问题。我还检查了conda提示符下的py_numpy_available()版本,它是1.15.4。另外reticulate返回false。我的python: C:\Users\jakes\ANACON~1\python.exe libpython: C:/Users/jakes/ANACON~1/python37.dll pythonhome: C:\Users\jakes\ANACON~1 version: 3.7.1 (default, Oct 28 2018, 08:39:03) [MSC v.1912 64 bit (AMD64)] Architecture: 64bit numpy: [NOT FOUND] scikit-learn: [NOT FOUND] python versions found: C:\Users\jakes\ANACON~1\python.exe C:\Users\jakes\Anaconda3\python.exe 配置是:

replaceAll("0X(?=\\d{6})|(0)X(?=\\d{5})", "$1")

如何解决此问题?

1 个答案:

答案 0 :(得分:1)

请查看this thread,以了解更多信息。

尝试从以R对象作为参数的python脚本调用函数时遇到相同的错误。显然发生这种情况是因为尚未将Python添加到您的PATH中(这是在Anaconda安装期间建议的操作),这防止了在初始化python时网状结构发现numpy。 在用网状结构初始化python之前,在R中的PATH中添加python是为我解决了这个问题的方法。因此,来自上述线程:

if(.Platform$OS.type == "windows") Sys.setenv(PATH= paste("C:/Anaconda3/Library/bin",Sys.getenv()["PATH"],sep=";"))
library(reticulate)