python - 我在哪里保存我想在 Julia 中调用的 python 文件?
问题描述
我有一个计算数组的 python 脚本,我想在 Julia 中使用这个数组。
最简单的方法是什么?
解决方案
如果你有一个又长又复杂的 python 脚本,并且你想直接从 Julia 调用它并将结果数组直接返回给 Julia,最简单的选择可能是将你的 Python 脚本包装到一个 Python 模块中,将该模块安装在你的任何位置Python 路径,并使用PyCall将其导入 Julia ,使用以下内容:
using PyCall
my_python_package = pyimport("my_python_package")
foo = my_python_package.my_python_function(some_arguments)
如果您的脚本不是那么长和复杂,那么直接从 Julia 调用底层 Python 模块可能会更快,例如:
julia> using PyCall
julia> np = pyimport("numpy")
PyObject <module 'numpy' from '/Users/.../python3.7/site-packages/numpy/__init__.py'>
julia> np.random.normal(0,1,1000)
1000-element Array{Float64,1}:
-0.05105327176117878
0.5173117443548936
1.2998060543454042
⋮
-0.022888531778737377
-0.6389562444313613
0.6727725474307601
另请注意,您可以指定使用哪个 Python PyCall
julia> ENV["PYTHON"] = "/path/to/my/python/executable"
julia> Pkg.build("PyCall")
并且可以运行来自 Julia 的任意 Python 代码片段
julia> pyeval("1+1") # 1+1, but in python
2
julia> py"1+1" # this does the same thing
2
julia> py"""
some longer python snippet including characters
like newlines or \
that I don't want to have to have to escape
""" # also an option
推荐阅读
- linux - “pwd”命令适用于所有 linux 类型的 linux?
- r - 分组数据的移动平均线
- python - 为什么 pygame blit 不能在课堂上工作
- android - 使用 LoaderManager.LoaderCallbacks 的问题
使用自定义 RecyclerView.Adapter - html - 如何在我的按钮标签中以 100% 的宽度和高度包含锚标签
- android - Android:获取 uri 真实路径返回 null
- asp.net-web-api - 使用后台任务通过 Web API 发送预定电子邮件
- macos - 使用 C++ 在 MacOS 上以编程方式获取 HDD 大小
- r - 使用 purrr::map 和 ggplot2 绘制多个直方图
- android - .. 已关闭 .. JNI 错误 'java_class == null' Android Studio