arrays - 如何像在 Python 中一样在 Julia 中拆分数组?
问题描述
我想做这个 :
a = [1,2,3,4,5]
print(a[:2])
输出是
[1, 2]
我怎样才能在 Julia 中做同样的事情?但我a
的类型是:Array{Array{Float64,1},1}
解决方案
假设你有:
julia> x = [[i] for i in 1.0:5.0]
5-element Array{Array{Float64,1},1}:
[1.0]
[2.0]
[3.0]
[4.0]
[5.0]
(这相当于您在上面写的但具有您要求的类型)。
您可以x
通过传递切片的第一个和最后一个索引来切片。下限和上限都将包括在内(还要注意 Julia 使用基于 1 的索引):
julia> x[1:2]
2-element Array{Array{Float64,1},1}:
[1.0]
[2.0]
julia> x[2:4]
3-element Array{Array{Float64,1},1}:
[2.0]
[3.0]
[4.0]
您可以使用end
来表示您的收藏结束:
julia> x[3:end]
3-element Array{Array{Float64,1},1}:
[3.0]
[4.0]
[5.0]
上述操作创建了一个新向量。如果您更喜欢查看视图,请编写:
julia> @view x[2:4]
3-element view(::Array{Array{Float64,1},1}, 2:4) with eltype Array{Float64,1}:
[2.0]
[3.0]
[4.0]
或者
julia> view(x, 2:4)
3-element view(::Array{Array{Float64,1},1}, 2:4) with eltype Array{Float64,1}:
[2.0]
[3.0]
[4.0]
不同的是,使用@view
宏你仍然可以使用end
,例如@view x[2:end]
,但view
函数不支持它。
推荐阅读
- android - weight=1 和 android:layout_width="0dp" 使我的视图消失
- javascript - 当我重新启动我的 node.js Web 服务器时,我的调用堆栈会发生什么?
- c# - 执行一个可能有一些参数为空的查询
- python - Jupyter Notebook 无法在命令行中运行代码
- python - 在开发过程中如何使用 Keras 获得可重现的结果?
- android - java.lang.NoClassDefFoundError 与 Kotlin 数据类
- vb.net - 显示新表单时的视觉基本问题
- azure - 如何通过terraform将本地文件复制到azure vm?
- c++ - 3d 三角形卡住了 c++ opengl glfw
- flutter - 如何为给定类型的 Flutter 小部件强制执行某些参数值?