Julia:从索引数组和可供选择的数组构造一个数组(或者:Julia 中相当于 numpy 中的 np.choose 的是什么?)

标签 julia

在 Python (Numpy) 中,有一个 np.choose函数,它从索引数组和可供选择的数组列表构造一个数组。

简单的例子(实际上我最感兴趣的是这个简单版本的一维选择数组问题):

import numpy as np
idx_arr = np.array([0, 1, 2, 1, 3])
choices = np.array([0, 10, 20, 30])
new_arr = np.choose(idx_arr, choices)  # array([ 0, 10, 20, 10, 30])

对于上面的示例,可以使用列表理解在 Julia 中使用 for 循环创建相同的结果

idx_arr = [1, 2, 3, 2, 4];
choices = [0, 10, 20, 30];
new_arr = [choices[idx_arr[i]] for i in 1:length(idx_arr)];

是否有 Julia 等效于 np.choose 或任何其他不需要循环索引数组来实现此目的的方法?

最佳答案

choices[idx_arr] 将起作用(请注意,索引是从 1 开始的,而不是从 0 开始的)。

问题中的示例:

julia> idx_arr = [1, 2, 3, 2, 4];

julia> choices = [0, 10, 20, 30];

julia> new_arr = [choices[idx_arr[i]] for i in 1:length(idx_arr)]
5-element Vector{Int64}:
  0
 10
 20
 10
 30

julia> choices[idx_arr]
5-element Vector{Int64}:
  0
 10
 20
 10
 30

关于Julia:从索引数组和可供选择的数组构造一个数组(或者:Julia 中相当于 numpy 中的 np.choose 的是什么?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77475843/

相关文章:

julia - 从一些向量创建值对

multithreading - 多线程 Julia 显示枚举迭代器错误

dataframe - 过滤行和附加值

julia - 为什么 Julia 运行函数的速度比非等效函数快?

c - 等价于 Julia 语言中的 C 编程语法 "#define"

command-line-arguments - Windows 上 Julia 中的命令行通配符

function - Pareto 函数与 Julia 中的数据帧?

julia - 在 Julia 中限定冲突函数

julia - Julia 是否支持音频处理

git - pull 请求到 julia 包