arrays - 在 Julia 中收集数组的元素
问题描述
我想了解如何能够通过 m 维数组收集 n 的元素并将它们存储到 m 维的 n 个向量中。例如,我有以下 3 x 2 数组,我想将每一行的对存储到一个向量中。
Array1 = [ 1 0; 2 0; 3 0]
这给出了:
3×2 Array{Int64,2}:
1 0
2 0
3 0
这个想法是创建一个 for 循环,在每次迭代中将上述数组的值存储到一个二维向量中。
我不知道该怎么做,因为collect
到目前为止,该函数只会保存我的实验中同一列的元素。
那么我怎样才能将每一对存储到一个向量中呢?
解决方案
它可以很简单collect(eachrow(Array1))
julia> collect(eachrow(Array1))
3-element Vector{SubArray{Int64, 1, Matrix{Int64}, Tuple{Int64, Base.Slice{Base.OneTo{Int64}}}, true}}:
[1, 0]
[2, 0]
[3, 0]
这很短,更重要的是,类型稳定,因此它比Any[]
解决方案性能更高。但它创建view
的底层Matrix
有时不是您想要的,特别是考虑到 Julia 是面向列的,因此行视图会相对较慢。如果是这样的话,你可以去
julia> collect.(eachrow(Array1))
3-element Vector{Vector{Int64}}:
[1, 0]
[2, 0]
[3, 0]
这仍然非常快。
但是你也可以考虑你对这种结构的使用。例如,如果您只想遍历行,那么根本不需要收集,您可以eachrow
直接使用而无需中间物化。
推荐阅读
- python - sendgrid 中的附件已保存但为空
- listview - 如何创建搜索栏和列表(使用 FireStore 中的 StreamBuilder 和 Listview 创建)一起滚动?
- asp.net-mvc - 如何在我的控制器 (SignalR) 上调用集线器?
- javascript - 如何使用 koa-multer 获取图像路径?
- bash - 长到宽格式
- java - 使用 Keycloak 保护 Spring Cloud Gateway
- react-native - createNavigatorFactory 不是函数
- javascript - setstate 模式以访问状态中的对象的属性(reactjs)
- amazon-web-services - 使用 AWS AppSync 订阅批量突变
- c# - EF Core 工具 - 迁移时出现错误错误消息