Hug*_*den 5 python r scipy reticulate
我已经编写了一个函数,它的工作原理与我在 python 中想要的完全一样,但是当我尝试在 RI 中运行它时,遇到了网状的问题。我已经解决了这个问题并将其简化为这个问题。我在 python 中有这个函数:
def get_largest_eigenvalue(inc_mat):
eigen_val = scipy.sparse.linalg.eigs(inc_mat, k = 1)
eigen_val = eigen_val[0] / inc_mat.shape[0]
return eigen_val
Run Code Online (Sandbox Code Playgroud)
本质上,该函数采用 csr_matrix 并返回其最大特征值。它应该适用于任何 csr_matrix。当我使用网状运行此代码时出现错误,解决此问题将解决我更大的问题。
要在网状中运行此代码,我运行
library(reticulate)
use_virtualenv("default")
Run Code Online (Sandbox Code Playgroud)
我之前运行过此代码以将 scipy 安装到此虚拟环境
virtualenv_install("default", c("scipy"))
Run Code Online (Sandbox Code Playgroud)
然后我用过
source_python("file_name.py")
Run Code Online (Sandbox Code Playgroud)
加载我的所有 python 函数,包括上面的函数。除了上面的函数之外,我加载的所有其他函数都可以完美运行。当我尝试运行它时,我收到以下错误
py_call_impl 中的错误(可调用,dots$args,dots$keywords):AttributeError:模块“scipy.sparse”没有属性“linalg”
我在这里有点超出我的深度,我尝试运行类似的代码
virtualenv_install("default", c("scipy.sparse"))
Run Code Online (Sandbox Code Playgroud)
但这会导致更多错误并且不起作用。任何帮助,将不胜感激!谢谢你!
将此显式导入添加到您的代码中:
import scipy.sparse.linalg
Run Code Online (Sandbox Code Playgroud)
导入scipy.sparse不会自动linalg导入子模块。
| 归档时间: |
|
| 查看次数: |
8655 次 |
| 最近记录: |