问题标签 [vectorization]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
70409 浏览

r - R中的向量化IF语句?

我希望if对每个案例进行操作,而不是对整个向量进行操作。我必须改变什么?

0 投票
4 回答
27082 浏览

c - 如何使用 C 中的 SSE 内在函数计算单向量点积

我试图将两个向量相乘,其中一个向量的每个元素乘以另一个向量的相同索引中的元素。然后我想对结果向量的所有元素求和以获得一个数字。例如,向量 {1,2,3,4} 和 {5,6,7,8} 的计算如下所示:

本质上,我正在取两个向量的点积。我知道有一个 SSE 命令可以执行此操作,但该命令没有与之关联的内在函数。此时,我不想在我的 C 代码中编写内联汇编,所以我只想使用内部函数。这似乎是一个常见的计算,所以我对自己在谷歌上找不到答案感到惊讶。

注意:我正在针对支持 SSE 4.2 的特定微架构进行优化。

0 投票
3 回答
6529 浏览

r - 为什么 sapply 返回一个我需要转置的矩阵,然后转置的矩阵不会附加到数据帧?

我希望能深入了解为什么会发生这种情况,以及我如何才能更有说服力地做到这一点。

当我使用 sapply 时,我希望它返回一个 3x2 矩阵,但它返回一个 2x3 矩阵。为什么是这样?为什么很难将它附加到另一个数据框?

当我尝试附加这些时,

我得到的错误是:

尽管以下似乎给出了预期的结果:

我无法对变量进行操作:

返回

谢谢!

0 投票
3 回答
343 浏览

r - 如何加速这种双 for 循环?

我正在用 R 编写一个期望最大化算法。为了加快计算速度,我想对这个瓶颈进行矢量化。我知道N大约是k的一百倍。

还有这个矩阵列表:


我使用以下方法加快了速度:

和:

0 投票
4 回答
4934 浏览

r - R中的编码实践:不同风格的优缺点是什么?

最近关于使用 require 与 :: 的问题提出了在 R 中编程时使用哪种编程风格以及它们的优点/缺点是什么的问题。浏览源代码或上网浏览,您会看到很多不同的样式显示。

我的代码中的主要趋势:

  • 重向量化我经常使用索引(和嵌套索引),这有时会导致代码相当模糊,但通常比其他解决方案快得多。例如:x[x < 5] <- 0而不是x <- ifelse(x < 5, x, 0)

  • 我倾向于嵌套函数以避免因需要清理的临时对象而使内存过载。特别是对于处理大型数据集的函数,这可能是一个真正的负担。例如:y <- cbind(x,as.numeric(factor(x)))而不是y <- as.numeric(factor(x)) ; z <- cbind(x,y)

  • 我编写了很多自定义函数,即使我在例如只使用了一次代码。一个sapply。我相信它可以使它更具可读性,而不会创建可以留在周围的对象。

  • 不惜一切代价避免循环,因为我认为矢量化更干净(更快)

然而,我注意到对此的看法不同,有些人倾向于放弃他们所谓的“Perl”编程方式(甚至是“Lisp”,所有这些括号都在我的代码中飞来飞去。我不会不过不要走那么远)。

您认为 R 中的良好编码实践是什么?

你的编程风格是什么,你如何看待它的优点和缺点?

0 投票
5 回答
11675 浏览

python - 是否可以对 NumPy 数组的递归计算进行矢量化,其中每个元素都依赖于前一个元素?

Tmtau是先前计算的相同长度的 NumPy 向量,希望创建一个新向量Ti仅包含用于指示所需内容的元素索引。

这种情况下是否需要 for 循环?

0 投票
4 回答
1254 浏览

loops - 在 FORTRAN 中禁用矢量化循环?

是否可以绕过 FORTRAN 中的循环矢量化?我正在为特定项目编写 F77 标准,但 GNU gfortran 通过现代 FORTRAN 编译,例如 F95。有谁知道某些 FORTRAN 标准是否避免了循环矢量化,或者 gfortran 中是否有任何标志/选项可以关闭它?

更新:所以,我认为我的具体问题的最终解决方案必须“DO”与 FORTRAN DO 循环不允许更新迭代变量。可以在@High Performance Mark 对此相关线程的回复中找到对此的提及...循环矢量化以及如何避免它

[进入堡垒,让菜鸟躲避。]

0 投票
1 回答
2673 浏览

loops - 循环矢量化以及如何避免它

循环向量化是在开始时计算所有右侧表达式。我刚刚发现我的循环正在被矢量化(在 FORTRAN 77 中......不要问)。我需要在每次迭代中更新循环条件变量,但是如何重写以解决这个向量化?

相关帖子中,我正在寻找一种方法来专门禁用 FORTRAN 中的此优化“功能”,但在这里我正在寻找针对一般情况的更算法解决方案。

0 投票
3 回答
599 浏览

r - 关于摆脱循环的建议

我编写了一个程序来解决 3n + 1 问题(又名“奇妙的数字”和其他各种问题)。但它有一个双循环。我怎么能矢量化它?

代码是

谢谢!

0 投票
2 回答
7775 浏览

python - Numpy矢量化,使用列表作为参数

numpyvectorize函数很有用,但是当函数参数是列表而不是标量时,它的表现就不好。举个例子:

给出:

我知道函数 f无需ing 它就可以正常vectorize工作,但我想知道(通常)如何矢量化其参数采用列表而不是标量的函数。