如何从 julia 中的数组中删除第 n 个元素?假设我有以下数组:a = [1 2 3 4 5 6]
我想要 b = [1 2 4 5]
在 javascript 中我会做类似的事情:
b = a.filter(e => e % 3);
如何在 Julia 中完成?
最佳答案
您的问题标题和文本提出了不同的问题。标题询问如何跳过第 N 个元素,而 Javascript 代码片段详细说明了如何根据元素的值而不是它们的索引来跳过元素。
按值跳过
我们可以使用 filter
来做到这一点.
filter((x) -> x % 3 != 0, a)
这基本上等同于您的 Javascript 代码。顺便说一句,我们也可以使用 broadcasting .
a[a .% 3 .!= 0]
这更类似于您在 MATLAB 和 R 等面向数组的语言中看到的代码。
按索引跳过
还有一个额外的 enumerate
调用,我们可以获得要操作的索引。
map((x) -> x[2], Iterators.filter(((x) -> x[1] % 3 != 0), enumerate(a)))
这大致就是您在 Python 中所做的事情。 enumerate
获取索引,filter
清除,然后 map
消除现在不需要的索引。
或者我们可以再次使用广播。
a[(1:length(a)) .% 3 .!= 0]
关于arrays - 跳过数组的第 n 个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67778689/