如何在julia中将数据从一个处理器移动到另一个处理器?
说我有一个阵列
a = [1:10]
Run Code Online (Sandbox Code Playgroud)
或者其他一些数据结构.将它放在所有其他可用处理器上的正确方法是什么,以便它们可以作为相同的变量名在这些处理器上使用?
当我输入
$ julia myprog.jl foo bar baz
Run Code Online (Sandbox Code Playgroud)
在我的代码中,我可以去访问字符串"foo", "bar", "baz"吗?
我正在寻找Python的等价物 sys.argv
我正在尝试创建一个包含两个数组的数组.但是,a = [[1, 2], [3, 4]]不这样做,它实际上是对数组进行连接.朱莉娅也是如此:[[1, 2], [3, 4]] == [1, 2, 3, 4].任何的想法?
作为临时解决方法,我使用push!(push!(Array{Int, 1}[], a), b).
Anaconda的一个主要特点是它与博客中所述的语言无关:
您可以创建任何二进制依赖关系树的环境(不同版本的Python,R,Julia等).
最近我在Python中使用virtualenv转换为Anaconda,所以我很想在Anaconda环境中尝试Julia.但是,我找不到足够明确的说明来成功安装Julia.首先,我天真地尝试过conda create -n julia-test julia.显然,它没有用.然后我在binstar.org 找到了带有代码的Julia软件包(版本0.3)
conda install -c https://conda.binstar.org/wakari1 julia
Run Code Online (Sandbox Code Playgroud)
但是,我不想在特定虚拟环境之外安装Julia,因此我将其更改为:
conda create -n julia-test -c https://conda.binstar.org/wakari1 julia
Run Code Online (Sandbox Code Playgroud)
它没有抛出错误,但最终未能启动Julia解释器.
那么,在anaconda环境中安装Julia(0.2,最好是)的正确方法是什么?
UPDATE
截至2018年3月,Julia v0.6.1可用于conda-forge频道上的linux-64:
https://anaconda.org/conda-forge/julia
它已设置为在内部安装软件包<env_prefix>/share/julia/site,以保持与用户~/.julia用户主目录的隔离.
conda create -n julia -c conda-forge julia
typename{...}(...)(注意{}部分)是内部构造函数"?explicit inner constructor?methods用于检查方法是否是内部/外部构造?顺便说一句,我知道如何使用以及何时使用内部构造函数.我知道内部构造函数是什么,直到外部构造者进入并混淆了水域.:(
让我们回顾一下来自该文档的一些陈述:
1.外部构造方法
构造函数与Julia中的任何其他函数一样,其整体行为由其方法的组合行为定义.
2.内部构造方法
内部构造函数方法很像外部构造函数方法,有两个不同之处:1.它在类型声明的块中声明,而不是像普通方法一样在它之外声明.2.它可以访问一个特殊的本地存在的函数
new,该函数创建块类型的对象.3.参数化构造函数
如果没有任何显式提供的内部构造函数,复合类型的声明会
Point{T<:Real}自动Point{T}为每个可能的类型提供一个内部构造函数T<:Real,其行为就像非参数默认内部构造函数一样.它还提供了一个总的外点构造函数,对真正的参数,它必须是同一类型的.
我发现inner constructor methods不能直接观察methods,甚至是methods(Foo{Int})作品,它实际上并不"像任何其他功能一样",常见的通用功能不能methods以这种方式编辑.
julia> struct Foo{T}
x::T
end
julia> methods(Foo)
# 2 methods for generic function "(::Type)":
(::Type{Foo})(x::T) where T in Main at REPL[1]:2 # outer ctor ?1?
(::Type{T})(arg) where T in Base at sysimg.jl:24 …Run Code Online (Sandbox Code Playgroud) 我正在迁移matlab到julia,我正在尝试生成1:n范围内的随机整数
对于n < 21,
rand(r[1:n]) 作品.
但是n > 20,例如rand(r[1:21])
我收到这条消息.
错误:getindex中的BoundsError()在range.jl:121
我想在julia中使用随机生成器对正态分布数进行几次检查.所以我想要的是获得相同的伪随机数序列.
实际上,我做随机矩阵,所以我希望我的两个程序生成:
A = randn(dim,dim)
H = (A + A')/sqrt(2)
Run Code Online (Sandbox Code Playgroud)
相同的H矩阵
我正在尝试Julia DataFrames模块.我对它很感兴趣所以我可以用它在Gadfly中绘制简单的模拟.我希望能够迭代地向数据帧添加行,我想将其初始化为空.
有关如何执行此操作的教程/文档很少(大多数文档描述了如何分析导入的数据).
附加到非空数据帧很简单:
df = DataFrame(A = [1, 2], B = [4, 5])
push!(df, [3 6])
Run Code Online (Sandbox Code Playgroud)
这回来了.
3x2 DataFrame
| Row | A | B |
|-----|---|---|
| 1 | 1 | 4 |
| 2 | 2 | 5 |
| 3 | 3 | 6 |
Run Code Online (Sandbox Code Playgroud)
但是对于一个空的init我会得到错误.
df = DataFrame(A = [], B = [])
push!(df, [3, 6])
Run Code Online (Sandbox Code Playgroud)
错误信息:
ArgumentError("Error adding 3 to column :A. Possible type mis-match.")
while loading In[220], in expression starting on line 2 …Run Code Online (Sandbox Code Playgroud) 我的目标是在IPython笔记本中只运行几行Julia,其中大部分代码都是Python用于某些实验......
我在这里找到了一个很好的示例笔记
http://nbviewer.ipython.org/github/JuliaLang/IJulia.jl/blob/master/python/doc/JuliaMagic.ipynb
现在我想知道如何为Julia安装IPython扩展(我主要使用IPython 2.1),以便我可以通过
%load_ext julia.magic
Run Code Online (Sandbox Code Playgroud)
我也是julia的新手,我想知道是否有"混合numpy和julia"的性能优势,如本笔记本所示(通过常规Python numpy或常规Julia代码)
当我正确理解这个概念时,如果我只对运行Julia代码感兴趣,我会使用IJulia笔记本(我成功设置)吗?
我安装了IJulia,我也可以运行IJulia笔记本,但实际上我只想在笔记本中加入一小部分Julia代码,其余的应该是Python/Cython.不幸的是,我读到魔术函数尚未得到完全支持:"与IPython的一个区别是IJulia内核目前不支持"magics",它是以%或%%为前缀的特殊命令,用于执行不同语言的代码"
有没有办法在IJulia笔记本中运行Python代码?
我有一个我在这里写的模块:
# Hello.jl
module Hello
function foo
return 1
end
end
Run Code Online (Sandbox Code Playgroud)
和
# Main.jl
using Hello
foo()
Run Code Online (Sandbox Code Playgroud)
当我运行Main模块时:
$ julia ./Main.jl
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
ERROR: LoadError: ArgumentError: Hello not found in path
in require at ./loading.jl:249
in include at ./boot.jl:261
in include_from_node1 at ./loading.jl:320
in process_options at ./client.jl:280
in _start at ./client.jl:378
while loading /Main.jl, in expression starting on line 1
Run Code Online (Sandbox Code Playgroud)