arrays - 跳过数组的第 n 个元素

标签 arrays julia

如何从 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/

相关文章:

使用内存地址在不带指针的 C 函数中更改数组

python - 将 NumPy 字符数组转换为字符串

julia - 在 Julia : Find the mean of an array with missing values

python - Julia 字符串格式 "if"

arrays - 调整矩阵大小

c - 如何找到数组的大小(从指向数组第一个元素的指针)?

java - 并行化列表时 Spark 抛出 ArrayIndexOutOfBoundsException

git - pull 请求到 julia 包

julia - 使用 Julia,如何以工程符号格式化阿伏伽德罗常数(或其他数字)?

arrays - 如何计算某些 Google Sheet 时间范围之间的重叠?