问题标签 [julia]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
matplotlib - Julia 中的 PyPlot 给出“没有名为站点的模块”错误
我今天开始和 Julia 一起玩了。我开始关注Steven 的MIT 教程。但是,当我到达 Plotting 部分时,我尝试使用以下命令导入 PyPlot:
但是它给了我以下错误:
我使用 Canopy 作为我的 Python 安装,因此 pyplot 所需的所有模块应该已经在机器上可用。
注意如教程中所示,我确实在 Julia 中使用 Pkg.add("PyPlot") 来在 Julia 中安装 pyplot。
julia - 在 Julia 中初始化数组
我正在尝试创建一个包含两个数组的数组。但是,a = [[1, 2], [3, 4]]
并没有这样做,它实际上连接了数组。这在 Julia 中是正确的:[[1, 2], [3, 4]] == [1, 2, 3, 4]
. 任何的想法?
作为临时解决方法,我使用push!(push!(Array{Int, 1}[], a), b)
.
statistics - 计算 Julia 的置信区间
基本上,我有一个数组,其中包含来自人群的随机样本。我正在尝试计算真实总体均值的 95% 置信区间。
我研究了两个库,但它们似乎只支持两个样本 t 检验。(我不擅长统计,所以我可能遗漏了一些东西。)
arrays - 类似 Fortran 的数组,例如 Julia 中的 FArray(Float64, -1:1,-7:7,-128:512)
一般来说,对于 Julia 来说,基于 1 的数组是一个不错的决定,但有时需要使用类似 Fortran 的数组,其索引跨越 ℤ 的某些子范围:
有用的地方:
在教授所著的《双曲偏微分方程的数值解》一书中的代码中。John A. Tragenstein 这些负指数被大量用于边界条件的鬼细胞。教授的 Clawpack(代表“保护法包”)也是如此。Randall J. LeVeque http://depts.washington.edu/clawpack/ 还有许多其他代码,这些索引是自然的。所以这样的辅助类对于快速翻译这些代码很有用。
我刚开始实现这种辅助类型,但由于我对 Julia 很陌生,您的帮助将不胜感激。
我开始:
输出:
由于我对 Julia 完全陌生,因此我将不胜感激任何建议,尤其是能够提高效率的建议。
[编辑]
该主题已在此处讨论:
https://groups.google.com/forum/#!topic/julia-dev/NOF6MA6tb9Y
在讨论期间,阐述了两种使用任意基数的 Julia 数组的方法: 基于 SubArray,示例用法是使用辅助函数:
请注意,没有完全检查边界更多细节在这里: https ://github.com/JuliaLang/julia/issues/4044
目前 SubArray 存在性能问题,但最终它的性能可能会有所提高,另请参阅:
https://github.com/JuliaLang/julia/issues/5117
https://github.com/JuliaLang/julia/issues/3496
除了检查两个边界之外,目前具有更好性能的另一种方法:
获取索引和设置索引!FArray 的方法受到 base/array.jl 代码的启发。
用例:
regex - 在 Julia 中加入正则表达式
有没有办法join
(并且通常操纵)Regex
只处理正则表达式内容(即不将r
修饰符视为内容的一部分)。所需的输出z
是:
julia - 仅当尚未在 Julia 中定义时才分配
仅当变量未定义(或虚假)时,是否有简单的 Julia 语法分配给变量?我的意思是像 Ruby 的x ||= NEW_VALUE
. 我已经尝试过x || x=NEW_VALUE
,但它会引发错误。除非语法简单,否则我可以使用什么函数来检查变量是否已定义?
julia - 搜索文件夹中的文件
我正在尝试使用 Julia 解析大量文本文件,并且我想遍历文件名数组,而不是输入一个函数调用来单独读取每个文件。到目前为止,我一直无法找到一种方法来在文件夹中搜索与模式匹配的文件。
是否有一个基础库 Julia 函数将返回给定文件夹中的所有文件名,匹配给定的字符串模式?
R 中的等效函数是list.files()
,如果这有助于传达我想要的内容。
performance - Julia (Julia-lang) 与 Fortran 和 Python 的性能比较
我改编了一个简单的程序来计算和绘制 Julia 的运动涡流来测试语言,我也用 Python 编写了它,没有特别的原因。
(免责声明:1.我读过的关于stackoverflow的每一次性能比较都因不全面/正确/写得好/相关等而受到抨击-我不是假装这是一个真正的比较,我只是想知道如何进行Julia 更快。2. 我知道 python 可以被优化,在 Cython 等中实现,这不是这个讨论的一部分,它只是在这里作为 Julia 和 Python 中等效函数的参考。)
代码和性能结果可以在 gist中看到。
Julia 的性能明显慢于 Fortran。执行计算本身所花费的时间是(50000 个时间步长):
Julia 比 Fortran 慢得多(约 44 倍),差距缩小,但在 10 倍以上的时间步长 ( 0.50s vs 15.24s
) 时仍然很重要。
这些结果与 Julia 主页上显示的结果有很大不同。我究竟做错了什么?我可以将 Julia 修复得更快吗?
我已经浏览了Julia 性能提示页面和 Julia 主页上比较背后的代码,但我没有什么需要解决的。
同样有趣的是,Julia 加载 PyPlot ( 5secs
ish!!) 的速度非常慢,而且读取文本文件的速度也比 Python 慢得多。我能做些什么来改善这些事情吗?
请注意,上述时间并未显示 Julia 和 Python 的加载时间,它只是计算 AFAIK 所需的原始时间 - 请参阅代码。对于fortran,这就是全部。在每种情况下,绘图已大致关闭,以便进行速度比较。
计算机:Intel i7-3770,16GB 内存,SSD HD,操作系统:Ubuntu 13.10 64bit.,Fortran:gfortran,GNU Fortran (Ubuntu/Linaro 4.8.1-10ubuntu9) 4.8.1,Julia:版本 0.3.0-prerelease+396 (2013-12-12 00:18 UTC),提交 c5364db*(0 天老主),x86_64-linux-gnu,Python:2.7.5+
更新:
根据 ivarne 的建议,我重写了 Julia 脚本(在上面的要点中进行了更新):将 grunt 工作封装在函数中,声明所有内容的类型并将矩阵的不同元素拆分为适用的不同数组。(我在很多地方都包含了 Float64,因为我尝试使用 Float32 看看是否有帮助,但大多数时候都没有)。
结果如下:
50,000
时间步骤:
500,000
时间步骤:
综上所述:
你可以加快 Julia 的速度。
根据您如何衡量它的性能,您可以显着影响 Julia 的明显速度。
regex - 基于捕获数的 PCRE 重复 -- (\d)(.{\1})
我想也许这个简单的模式会起作用:
但不是。
我知道这在 Perl 中很容易,但我在 Julia 中使用 PCRE,这意味着很难嵌入代码来动态更改表达式。