gpt4 book ai didi

julia - 如何在 Julia 中将二维数组转换为一维数组

转载 作者:行者123 更新时间:2023-12-02 16:42:05 28 4
gpt4 key购买 nike

我有这个二维数组:a = [ (1,2) (2,3) ; (3,4) (4,5)] 我想转换成:

(1, 2)
(2, 3)
(3, 4)
(4, 5)
#1D Array

我如何在 Julia 中执行此操作?

最佳答案

我还会评论其​​他方法。

前两个遍历 Matrix 列而不是行:

julia> a[:]
4-element Array{Tuple{Int64,Int64},1}:
(1, 2)
(3, 4)
(2, 3)
(4, 5)

复制数据和:

julia> vec(a)
4-element Array{Tuple{Int64,Int64},1}:
(1, 2)
(3, 4)
(2, 3)
(4, 5)

它与 a 共享底层数据。这是一个结果:

julia> b = vec(a)
4-element Array{Tuple{Int64,Int64},1}:
(1, 2)
(3, 4)
(2, 3)
(4, 5)

julia> b[1] = (100, 100)
(100, 100)

julia> b
4-element Array{Tuple{Int64,Int64},1}:
(100, 100)
(3, 4)
(2, 3)
(4, 5)

julia> a
2×2 Array{Tuple{Int64,Int64},2}:
(100, 100) (2, 3)
(3, 4) (4, 5)

您可以使用显式理解,这允许您以两种方式进行操作:

julia> [a[i,j] for j in axes(a, 2) for i in axes(a, 1)]
4-element Array{Tuple{Int64,Int64},1}:
(1, 2)
(3, 4)
(2, 3)
(4, 5)

julia> [a[i,j] for i in axes(a, 1) for j in axes(a, 2)]
4-element Array{Tuple{Int64,Int64},1}:
(1, 2)
(2, 3)
(3, 4)
(4, 5)

最后你可以使用 vcat,同样是两种方式:

julia> reduce(vcat, eachrow(a))
4-element Array{Tuple{Int64,Int64},1}:
(1, 2)
(2, 3)
(3, 4)
(4, 5)

julia> reduce(vcat, eachcol(a))
4-element Array{Tuple{Int64,Int64},1}:
(1, 2)
(3, 4)
(2, 3)
(4, 5)

关于julia - 如何在 Julia 中将二维数组转换为一维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61440604/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com