Mat*_*ews 5 arrays indexing tuples julia
我知道在 Julia 中必须有一种聪明的方法来做到这一点,但我被难住了。我有一个一维元组数组,我想从数组的每一行中提取第三个元素。这是我正在使用的示例:
julia> experArr 20-element Array{(Any,Any,Any),1}:
(4000,0.97613,1.6e6)
(2000,0.97613,800000.0)
(8000,0.97613,3.2e6)
(1000,0.97613,400000.0)
...
Run Code Online (Sandbox Code Playgroud)
我的第一个想法是做这样的事情:
julia> experArr[:][3]
Run Code Online (Sandbox Code Playgroud)
但这会返回以下内容:
julia> experArr[:][3]
(8000,0.97613,3.2e6)
Run Code Online (Sandbox Code Playgroud)
我想要它返回的是这样的:
20-element Array{Any,1}:
1.6e6
800000.0
3.2e6
400000.0
...
Run Code Online (Sandbox Code Playgroud)
我尝试了其他几种索引排列,但我只返回一个元素。我觉得有一个正确的方法可以做到这一点,但我只是想念
本质上与 Stefan 的答案相同,但更简洁一点,您可以getfield通过数组进行广播:
getfield.(experArr, 3)
Run Code Online (Sandbox Code Playgroud)
experArray[:]只是原始数组的副本,因此这实际上是一个无操作。最简单的方法是理解:
[ x[3] for x in experArr ]
Run Code Online (Sandbox Code Playgroud)
你也可以这样做map:
map(x->x[3], experArr)
Run Code Online (Sandbox Code Playgroud)
目前,理解版本可能会更快并且具有更好的类型行为。
| 归档时间: |
|
| 查看次数: |
4648 次 |
| 最近记录: |