2434得票11回答
为什么逐元素相加在分开的循环中比在一个合并的循环中快得多?

假设 a1、b1、c1 和 d1 指向堆内存,并且我的数值代码具有以下核心循环。 const int n = 100000; for (int j = 0; j < n; j++) { a1[j] += b1[j]; c1[j] += d1[j]; } 这个循环通...

1148得票12回答
分组函数(tapply,by,aggregate)和 *apply 系列

每当我想要在R中做一些“映射”时,我通常会尝试使用apply系列中的一个函数。然而,我从未完全理解它们之间的差异——{sapply、lapply等}如何将函数应用于输入/分组输入,输出将是什么样子,甚至输入可以是什么——所以我经常只是一个一个地尝试,直到得到我想要的结果。有人能解释一下在什么情...

704得票12回答
在Pandas中,map、applymap和apply方法的区别

你能告诉我何时使用这些矢量化方法以及基本示例吗? 我看到map是一个Series方法,而其他方法都是DataFrame方法。不过,我对apply和applymap方法感到困惑。为什么我们有两种方法可以将函数应用于DataFrame?同样,提供说明用法的简单示例将非常有帮助!

427得票4回答
在R语言中,是否有一种函数可以找到向量中元素的索引?

在R语言中,我有一个元素x和一个向量v。我想要找到向量v中第一个等于x的元素的索引。我知道一种做法是:which(x == v)[[1]],但这似乎过于低效。有没有更直接的方法? 如果x是一个向量,是否有函数可以返回x中每个元素在v中的位置索引向量?

318得票9回答
什么是“向量化”?

我在Matlab、Fortran或其他一些编程语言中多次遇到了“向量化”这个术语,但我从未找到过它的解释以及它的作用。因此,我在这里问一下,“向量化”是什么意思?例如,“循环被向量化”是什么意思?

162得票3回答
Pandas中的for循环真的很糟糕吗?我应该在什么情况下关心它们?

for循环真的“不好”吗?如果不是,那么在什么情况下使用它们会比使用更传统的“矢量化”方法更好? 我熟悉“矢量化”的概念,以及pandas如何使用矢量化技术加速计算。矢量化函数将操作广播到整个系列或数据框中,以实现比传统迭代数据更快的速度提升。 但是,我很惊讶地发现有很多代码(包括来自St...

155得票9回答
为什么R语言的ifelse语句不能返回向量?

有时候我发现R语言的ifelse语句非常实用。例如:ifelse(TRUE,1,2) # [1] 1 ifelse(FALSE,1,2) # [1] 2 但是我对以下行为感到有些困惑。ifelse(TRUE,c(1,2),c(3,4)) # [1] 1 ifelse(FALSE,c(1,2),...

148得票4回答
“*apply”家族真的没有进行向量化处理吗?

所以我们通常会对每个 R 新用户说:“apply 不是矢量化的,查看 Patrick Burns 的R Inferno 第四部分圆圈”,其中说道(我引用):   一个常见的反应是在 apply 函数族中使用函数。 这不是矢量化,它是循环隐藏。apply 函数在其定义中有一个 for 循环。...

128得票6回答
高效评估NumPy数组中每个单元格的函数

给定NumPy数组A,如何以最快/最高效的方式将相同的函数f()应用于每个单元格? 我通过f(A(i,j))来赋值给A(i,j)。函数f()没有二进制输出,所以掩码操作无法帮助。双重循环迭代每个单元格是否是最优解?

113得票12回答
如何在MATLAB中对矩阵的每一行/列应用函数?

你可以通过例如 v + 1 的方式对向量中的每个元素应用一个函数,或者使用函数 arrayfun。那么在不使用 for 循环的情况下,如何对矩阵的每一行/列执行相同的操作呢?