我想对 C 和 Julia 的性能进行正式比较。为此,我想比较不同的排序算法,从气泡开始。在 Julia 中我这样写:
using BenchmarkTools
function bubble_sort(v::AbstractArray{T}) where T<:Real
for _ in 1:length(v)-1
for i in 1:length(v)-1
if v[i] > v[i+1]
v[i], v[i+1] = v[i+1], v[i]
end
end
end
return v
end
v = rand(Int32, 100_000)
@timed bubble_sort(_v)
Run Code Online (Sandbox Code Playgroud)
对于 C 代码(我不知道用 C 编程,所以我对代码表示歉意):
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
static void swap(int *xp, int *yp){
int temp = *xp;
*xp = *yp;
*yp = temp;
}
void bubble_sort(int arr[], int n){
int i, j;
for (j …Run Code Online (Sandbox Code Playgroud) Julia 有一个有点庞大的 AD 生态系统,据我所知,现在可能有十多个不同的包,正向模式(ForwardDiff.jl,ForwardDiff2.jl ),反向模式(ReverseDiff.jl,Nabla 。 jl、AutoGrad.jl)和源到源(Zygote.jl、Yota.jl、Enzyme.jl,可能还有即将推出的 Diffractor.jl)在编译管道的几个不同步骤,以及更奇特的东西像NiLang.jl。
在这些包之间,对不同语言结构(控制流、变异等)的支持是什么,是否有关于如何为给定任务选择给定 AD 的经验法则?我相信在某个时候在 Julia Slack 上有一个比较和对比表,但我似乎无法在相关的话语线索或其他可能的地方 ( 1 , 2 ) 中找到为后代复制的任何内容
朱莉娅有什么办法可以做到这一点吗?
#Python
lst = [1, 2, 3]
print(lst[-2]) # prints out 2
Run Code Online (Sandbox Code Playgroud)
我知道last函数获取最后一个,但我想获取最后一个的第二个。
谢谢!!
我有一个数据表,其中包含一些名称中包含空格的列。Column 1如果我只想选择数据帧的该列,如何按名称引用这些列(例如)?我尝试过data.Column 1,但这不起作用。