gpt4 book ai didi

arrays - 如何在 Julia 中按行压缩 2D 和 1D 数组?

转载 作者:行者123 更新时间:2023-12-02 09:03:55 25 4
gpt4 key购买 nike

如何在 Julia 中使用“向量”按行压缩二维数组?

这个

X = [1 2; 3 4]
ndims(X)
Y = [-1 -2]
ndims(Y)
first(zip(X,Y))

给出(1, -1),而我想得到([1 2], -1)

最佳答案

如果您同意使用列向量作为输入和输出,那么您可以使用 eachrow函数,它迭代矩阵的行并将行作为列向量返回:

julia> X = [1 2; 3 4];

julia> Y = [-1, -2];

julia> collect(zip(eachrow(X), Y))
2-element Array{Tuple{Array{Int64,1},Int64},1}:
([1, 2], -1)
([3, 4], -2)
另一方面,如果您需要压缩元组的第一个元素是行向量(如您的问题所示),那么您可以将矩阵转换为行向量,然后使用 zip :

julia> X = [1 2; 3 4];

julia> Y = [-1 -2];

julia> rows = [X[[i], :] for i in 1:size(X, 1)]
2-element Array{Array{Int64,2},1}:
[1 2]
[3 4]

julia> collect(zip(rows, Y))
2-element Array{Tuple{Array{Int64,2},Int64},1}:
([1 2], -1)
([3 4], -2)

请注意,我使用了 X[[i], :]在理解中而不是 X[i, :] ,这样我们就得到一个行数组而不是一个列向量数组。

最后,需要明确的是,请注意 Y = [-1 -2]产生一个行向量。我们通常将向量表示为列向量:

julia> Y = [-1, -2]
2-element Array{Int64,1}:
-1
-2

关于arrays - 如何在 Julia 中按行压缩 2D 和 1D 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56620630/

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