小编Dav*_*ira的帖子

如何在 Julia 中获取索引列表的补充?

假设我有一个变量i = [1,3,5],它是在我对数组应用过滤器时获得的。现在,假设这个数组有 10 个元素,我想获得“补”索引。我的意思是,我想获得ic = [2,4,6,7,8,9,10].

是否有一种干净而简短的方法来获得这个索引的补充列表?

我的意思是,我可以用常规循环来做到这一点,但是有没有办法通过列表理解来做到这一点?

filtering list-comprehension julia

18
推荐指数
5
解决办法
966
查看次数

Julia DataFrames - 如何进行单热编码?

我正在使用 Julia 的 DataFrames.jl 包。在其中,我有一个数据框,其中包含一个包含字符串列表的列(例如 ["Type A"、"Type B"、"Type D"])。那么如何执行one-hot编码?我无法在 DataFrames.jl 包中找到预构建的函数。

这是我想要做的一个例子:

Original Dataframe

col1 | col2 |
102  |[a]   |
103  |[a,b] | 
102  |[c,b] |
Run Code Online (Sandbox Code Playgroud)
After One-hot encoding

col1 | a | b | c |
102  | 1 | 0 | 0 |
103  | 1 | 1 | 0 | 
102  | 0 | 1 | 1 |
Run Code Online (Sandbox Code Playgroud)

dataframe julia one-hot-encoding

9
推荐指数
2
解决办法
1045
查看次数

Julia - 如何将 kwargs 从函数传递给宏

您可以定义一个函数来将其关键字参数传递给内部函数,如下所示:

function example(data;xcol,ycol,kwargs...)
    DoSomething(; spec=:EX, x=xcol, y=ycol, kwargs...)
end
Run Code Online (Sandbox Code Playgroud)

现在,该函数DoSomething接受许多参数,例如color. 这适用于函数,但我想用 VegaLite.jl 中的宏来做到这一点:

function example(data;xcol,ycol,kwargs...)
    @vlplot(data=data,mark=:point, x=xcol, y=ycol,kwargs...)
end
example(df,xcol=:Miles_per_Gallon, ycol=:Horsepower, color=:Origin)
Run Code Online (Sandbox Code Playgroud)

请注意,上面的代码不起作用。

arguments function julia

6
推荐指数
2
解决办法
154
查看次数

如何在 Julia 中装饰一个函数?

当我在 Julia 中编写程序包时,我编写了几个类似的函数:

function scatterplot(data; x_col=:x, y_col=:y)

    data |> @vlplot(:circle, x=x_col, y=y_col)
end
Run Code Online (Sandbox Code Playgroud)

现在的问题是,我实际上想kwargs在这个函数中实现,比如:

function scatterplot(data; x_col=:x, y_col=:y; kwargs...)

    data |> @vlplot(:circle, x=x_col, y=y_col;kwargs...)
end
Run Code Online (Sandbox Code Playgroud)

但由于@vlplot 是一个宏,这实际上不起作用。所以我需要实际使用元编程如下:

function example(data;xcol,ycol,kwargs...)
    x = kwargs
    expression = "@vlplot(data=$data,mark=:point, x=$xcol, y=$ycol,"
    for (k,v) in x
        add = string(k,"=",v,",")
        expression = expression*add
    end
    expression = expression[1:end-1]*")"
    return expression
end
Run Code Online (Sandbox Code Playgroud)

问题是,如果我想使用“kwargs”,我想避免为我的每个函数编写这个循环,因此,如何做到这一点?

我的想法是以某种方式“装饰”每个功能,例如@decorate_with_kwargs scatterplot. 这可能吗?

metaprogramming function decorator julia

6
推荐指数
1
解决办法
136
查看次数

Julia - 如何将 DataFrame 转换为数组?

我有一个只包含数值的 DataFrame。现在,我想做的是将这个 DataFrame 的所有值提取为一个数组。我怎样才能做到这一点?我知道对于单列,如果我这样做df[!,:x1],那么输出是一个数组。但是如何对所有列执行此操作?

arrays dataframe julia

5
推荐指数
1
解决办法
645
查看次数

在函数式编程中,为什么 Maybe 函子没有定义为数据 Maybe a = Nothing | A?

我想知道为什么在 Haskell(以及一般的 FP)中函子(例如Maybe函子)被定义为

data Maybe a = Nothing | Just a
Run Code Online (Sandbox Code Playgroud)

而不是简单地

data Maybe a = Nothing | a
Run Code Online (Sandbox Code Playgroud)

第二个选项仍然是函子,因为Maybe函子将 type 转换a为 type Nothing + a。我缺少什么?

haskell types functional-programming option-type

5
推荐指数
3
解决办法
223
查看次数

Julia - 如何对数组进行排序并获取索引

我必须数组,一个包含权重,另一个包含类别(例如w=[3, 4, 1, 2],x= ["a","b","c","c"])。现在,我想x使用权重数组对数组进行排序。如何用最少的代码做到这一点?有没有办法对数组进行排序并获取相应的索引,以便您可以在任何其他具有相同大小的数组中使用这种新的排序顺序?

我知道可以使用 DataFrames 来做到这一点,但我正在寻找一种方法来做到这一点而不诉诸于那个。

sorting julia

4
推荐指数
1
解决办法
120
查看次数

如何在 Julia 中找到我的软件包版本?

如何在 Julia 中找到我的软件包版本?是否有显示正在使用的版本的命令?

version package julia

4
推荐指数
1
解决办法
67
查看次数

Julia - 如何有效地将矩阵的对角线归零?

在 Julia 中,将矩阵对角线变成零的有效方法是什么?

matrix linear-algebra diagonal julia

4
推荐指数
1
解决办法
996
查看次数

Julia - 在 Jupyter Notebook 中使用包的开发版本

我正在 Julia 中开发一个包,我创建了一些函数并发送了拉取请求。我现在正在等待主分支接受它。同时,我希望能够将该包与我刚刚在 Jupyter Notebook 中实现的当前功能一起使用。

如何将包的开发版本与 Jupyter Notebook 一起使用?

development-environment package julia jupyter-notebook

3
推荐指数
1
解决办法
189
查看次数

如何获取数组类型参数

在 Julia 中,如果我 make x = rand(10,2),那么

>> typeof(x)
Matrix{Float64} (alias for Array{Float64, 2})
Run Code Online (Sandbox Code Playgroud)

如何访问类型参数,即如何获得数组xFloat64and的数组2

arrays types julia

2
推荐指数
1
解决办法
46
查看次数