我找到了一个 Julia 函数,可以很好地完成我需要的工作。如何快速集成它以便能够从 Python 调用它?
假设函数是
f(x,y) = 2x.+y
Run Code Online (Sandbox Code Playgroud)
从 Python 中使用它的最佳和最优雅的方法是什么?
我已经知道如何将 Julia 包导入到 Python 中。
但是,现在我使用以下命令创建了自己的简单 Julia 包:
using Pkg;Pkg.generate("MyPack");Pkg.activate("MyPack");Pkg.add("StatsBase")
其中文件MyPack/src/MyPack.jl具有以下内容:
module MyPack
using StatsBase
function f1(x, y)
return 3x + y
end
g(x) = StatsBase.std(x)
export f1
end
Run Code Online (Sandbox Code Playgroud)
现在我想通过juliacall调用f1和g函数在 Python 中加载这个 Julia 包。我已经pip3 install juliacall从命令行运行了。如何从 Python 调用上述函数?
我的团队正在尝试使用多处理和使用julia -p #参数运行一个库(Cbc with JuMP)。我们的代码在一个 julia 包中,所以我们可以使用 运行我们的代码julia --project,它只运行一个进程。然而,尝试同时指定两者julia --project -p 8会破坏我们运行项目的能力,因为在运行using PackageName之后会导致错误。我们还打算使用该PackageCompiler库对其进行编译,因此需要使其与项目一起使用。
我们的项目位于一个文件夹中,其中包含一个 src 目录、一个 Project.toml 和一个 Manifest.toml src 包含:main.jl 和 Solver.jl
Project.toml 包含:
name = "Solver"
uuid = "5a323fe4-ce2a-47f6-9022-780aeeac18fe"
authors = ["..."]
version = "0.1.0"
Run Code Online (Sandbox Code Playgroud)
通常,我们的项目以这种方式开始(单线程)运行良好:
julia --project
julia> using Solver
julia> include("src/main.jl")
Run Code Online (Sandbox Code Playgroud)
如果我们-p 8在启动 Julia 时添加参数,则会在键入时出现错误using Solver:
ERROR: On worker 2:
ArgumentError: Package Solver [5a323fe4-ce2a-47f6-9022-780aeeac18fe] is required but does not seem to be …Run Code Online (Sandbox Code Playgroud) 以下是 Julia Discourse 的最小工作代码:
using LightGraphs
using GraphPlot
using Colors
g = graphfamous("karate")
membership = [1,1,1,1,1,1,1,1,2,1,1,1,1,1,2,2,1,1,2,1,2,1,2,1,1,1,1,2,1,1,2,1,1,1]
nodelabels = 1:34
nodecolor = [colorant"lightgrey", colorant"orange"]
nodefillc = nodecolor[membership]
colors = [colorant"lightgray" for i in 1:78]
colors[42] = colorant"orange"
gplot(g, nodefillc=nodefillc, layout=circular_layout, edgestrokec=colors, nodelabel=nodelabels)
Run Code Online (Sandbox Code Playgroud)
我成功获得了从 1 到 34 的节点标签,但是,我需要为某些特定节点显示另一种类型的标签。例如,某些节点的权重。也就是说,例如,我需要节点 19 的权重为 100,节点 1 的权重为 0.001。
有没有办法显示这样的数据?我可以在 GraphPlot 中找到相关关键字(只有 nodelabel 只接受向量),但我找不到另一个可以用于绘制图形的 Julia 包。
编辑感谢@Dan Getz,在发布到 SE 之前,我有与他建议相同的想法:尝试用格式的字符串标记节点"$i\n $weight"
但是,结果非常令人不满意,正如您在我的一张照片中看到的那样实际图表。橙色的节点 12,与其权重 177.0 分开,\n读起来不太好!
编辑感谢 @Przemyslaw Szufel 也许我的问题可以通过Compose(我实际上已经使用过)来解决,这是GraphPlot. …
我有一个 (21,100) 数组,想将其绘制为二维直方图(热图)。如果我天真地用histogram2d(A, nbins= 20)它只会绘制前 21 个点。
我试图循环它,但后来我有 100 个直方图,有 21 个点。另一个想法是将数据放入 (2100) 数组中,但这似乎是个坏主意。
另外:我有一个散点图/数据,并希望将其显示为热图。一个 bin 中的点越多,颜色越“暗”。所以我有 21 个 x 值,每个 x 值有 100 个 y 值。
我使用 Julia 1.6.0 RC1,所有包都工作得很好,除了GR_jll预编译失败之外。\n结果也Plots.jl没有得到预编译,因为它有 GR 作为依赖项。
我在安装软件包时看到的消息是:
\n5 dependencies successfully precompiled in 40 seconds (201 already precompiled, 1 skipped during auto due to previous er\nrors)\nRun Code Online (Sandbox Code Playgroud)\n另一方面,当尝试强制预编译时,我看到:
\njulia> Pkg.precompile()\nPrecompiling project...\n Progress [========================================>] 1/1\n \xe2\x9c\x97 GR_jll\n0 dependencies successfully precompiled in 5 seconds (201 already precompiled)\nRun Code Online (Sandbox Code Playgroud)\n这非常烦人,我的模块仍未编译。我应该怎么做才能修复这种情况?
\n我创建了一个包含大量参数的复杂计算模型。由于我需要运行许多场景,因此我决定将所有这些输入参数包装成一个巨大的struct:
using Parameters
@with_kw struct MyModel
a::Int = 5
b::Float64 = 5.5
c::Matrix{Float64} = rand(3,4)
# 40 other parameters go here
end
Run Code Online (Sandbox Code Playgroud)
我有一个对象m作为例子:
m = MyModel(a=15)
Run Code Online (Sandbox Code Playgroud)
现在,在编写数学代码时,我不想m.在每个符号前面都写。因此我需要将结构体字段放入局部变量中。一种方法是使用@unpack宏:
@unpack a, b, c = m
Run Code Online (Sandbox Code Playgroud)
对于我想要在各种函数中解压的巨大结构体来说,这很不方便(请注意,我的结构体有大约 40 个字段)。如何解压该结构而不花费时间并用所有这些参数使我的代码变得混乱?
我正在尝试在 AWS 计算集群上使用 Julia,处理来自 Amazon S3 存储桶的数据。
如何在 Julia 中使用AWSS3.jl打开与 S3 存储桶的连接?
我特别想知道配置连接并随后使用 Julia 的该配置的最佳方法是什么。
我使用 Julia 1.6.0(截至今天的测试版)并希望plfit通过PyCall.
不幸的是,plfit在 Anaconda 中不可用,因此我无法使用 Conda 模块安装它:
julia> using Conda
julia> Conda.add("plfit")
[ Info: Running `conda install -y plfit` in root environment
Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Collecting package metadata (repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
PackagesNotFoundError: The following packages are not available from current channels:
- plfit
...
Run Code Online (Sandbox Code Playgroud)
我如何从 Julia 安装这个包?
我们有一个 Julia 语言计算引擎,我们希望根据来自 HTML 网页的命令触发。
如何从此应用程序连接到 Julia 实例。是否可以通过 REST 服务连接到 Julia?
我在 Python 和 Julia 中做了一个项目,并且在诸如(Julia 版本)之类的函数中有代码:
function foo(a,b)
c = a+b
#more code here
end
Run Code Online (Sandbox Code Playgroud)
或(Python 版本)
def foo(a,b):
c=a+b
#more code here
Run Code Online (Sandbox Code Playgroud)
然后我需要通过检查变量的值来测试这些函数(在函数范围内)。我想避免写print(variables)或return variables每次。有什么方法可以帮助我自动将所有变量传递到外部作用域,以便开发环境可以轻松检查它们?