【发布时间】:2018-12-05 17:15:15
【问题描述】:
我想要一个函数,它返回一个新数组,其中包含沿 Julia 删除的轴的子数组。
更具体地说,给定一个数组(可能是 n 维的),删除我们沿指定维度指定的行并返回一个新数组。
在Python中,我们有这样一个函数,即numpy.delete。
如果是二维的,我可以有以下功能。
function delete(array::Array{<:Real,2}, obj::Int64, idx::Int64)
"""
obj : row to be deleted
idx : dimension(row if 1, column otherwise)
"""
if idx == 1
new_array = array[1:size(array,1) .!= obj, : ]
else
new_array = array[:, 1:size(array)[2] .!= obj]
end
return new_array
end
然后,我可以得到想要的结果,例如
>a = [1 2 3; 4 5 6; 7 8 9]
3×3 Array{Int64,2}:
1 2 3
4 5 6
7 8 9
>delete(a, 2, 2)
3×2 Array{Int64,2}:
1 3
4 6
7 9
但是,如何将此功能扩展到 n 维度?另外,我也想同时删除多行,怎么办?
【问题讨论】: