arrays - 接受二维数组并返回数组列的元组的函数?

标签 arrays tuples julia

如何将二维数组( n -by- m )转换为 m 的元组长度向量 n对应于数组的列?换句话说,我想要一个函数 f以至于

julia> f([1 2 3; 4 5 6])
([1,2,3],[4,5,6])

Julia 有提供这样的功能吗?如果没有,我该如何写一个?

最佳答案

据我所知,没有内置的 Julia 函数可以满足您的需求,即

  • 取一个二维数组 ( Array{T,2} ),
  • 返回向量元组 (Array{T,1},Array{T,1},...) ) 对应于数组的列。

  • 但是,您可以通过使用以下组合轻松地自己编写一个
  • 列表理解,
  • ...运算符(operator),
  • size功能,
  • tuple功能。

  • 把这一切放在一起
    function f{T<:Any}(A::Array{T,2})
        return tuple([A[:,c] for c in 1:size(A,2)]...)
    end
    

    例子
    julia> A = rand(4,5)
    4x5 Array{Float64,2}:
     0.21149   0.841894  0.275182   0.33981   0.0142366
     0.88409   0.718435  0.368415   0.521676  0.527016 
     0.482613  0.211109  0.394439   0.141225  0.071393 
     0.4477    0.330136  0.0303556  0.610213  0.699511 
    
    julia> tup = f(A)
    ([0.21149,0.88409,0.482613,0.4477],[0.841894,0.718435,0.211109,0.330136],[0.275182,0.368415,0.394439,0.0303556],[0.33981,0.521676,0.141225,0.610213],[0.0142366,0.527016,0.071393,0.699511])
    
    julia> typeof(tup)
    (Array{Float64,1},Array{Float64,1},Array{Float64,1},Array{Float64,1},Array{Float64,1})
    

    关于arrays - 接受二维数组并返回数组列的元组的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27675509/

    相关文章:

    syntax-error - 我在 Julia 中的程序发现没有语法错误

    scientific-computing - Julia 的 code_native 函数出错

    javascript - 从另一个数组更新对象数组的 JavaScript 方法是什么?

    java - 我需要从这个 2D String 方法返回什么?

    arrays - a[ :, None] 和 a[ :, ] 之间的区别

    haskell - 在 Haskell 中迭代所有对组合而不重复

    python - 使用列表理解进行元组解包失败,但可以使用 for 循环

    javascript - 在 JavaScript Web 套接字中从服务器端返回一个 JSON 数组对象

    python - 为什么在 Python 中 "0, 0 == (0, 0)"等于 "(0, False)"?

    view - reshape View 的功能?