如何从 julia 数组中删除每个第 n 个元素?假设我有以下数组:a = [1 2 3 4 5 6]并且我想要b = [1 2 4 5]
在 javascript 中我会做类似的事情:
b = a.filter(e => e % 3);
Run Code Online (Sandbox Code Playgroud)
在 Julia 中如何做到这一点?
您的问题标题和正文提出了不同的问题。标题询问如何跳过第 N 个元素,而 Javascript 代码片段详细介绍了如何根据元素的值(而不是索引)跳过元素。
我们可以使用 来做到这一点filter。
filter((x) -> x % 3 != 0, a)
Run Code Online (Sandbox Code Playgroud)
这基本上相当于你的 Javascript 代码。顺便说一句,我们也可以使用广播。
a[a .% 3 .!= 0]
Run Code Online (Sandbox Code Playgroud)
这更类似于您在 MATLAB 和 R 等面向数组的语言中看到的代码。
通过额外的enumerate调用,我们可以获得要操作的索引。
map((x) -> x[2], Iterators.filter(((x) -> x[1] % 3 != 0), enumerate(a)))
Run Code Online (Sandbox Code Playgroud)
这大致就是您在 Python 中要做的事情。enumerate获取索引,filter清除,然后map消除现在不需要的索引。
或者我们可以再次使用广播。
a[(1:length(a)) .% 3 .!= 0]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1059 次 |
| 最近记录: |