我开始使用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")
如何解决此问题?
答案 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)