问题标签 [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.
r - R中的向量化IF语句?
我希望if
对每个案例进行操作,而不是对整个向量进行操作。我必须改变什么?
c - 如何使用 C 中的 SSE 内在函数计算单向量点积
我试图将两个向量相乘,其中一个向量的每个元素乘以另一个向量的相同索引中的元素。然后我想对结果向量的所有元素求和以获得一个数字。例如,向量 {1,2,3,4} 和 {5,6,7,8} 的计算如下所示:
本质上,我正在取两个向量的点积。我知道有一个 SSE 命令可以执行此操作,但该命令没有与之关联的内在函数。此时,我不想在我的 C 代码中编写内联汇编,所以我只想使用内部函数。这似乎是一个常见的计算,所以我对自己在谷歌上找不到答案感到惊讶。
注意:我正在针对支持 SSE 4.2 的特定微架构进行优化。
r - 为什么 sapply 返回一个我需要转置的矩阵,然后转置的矩阵不会附加到数据帧?
我希望能深入了解为什么会发生这种情况,以及我如何才能更有说服力地做到这一点。
当我使用 sapply 时,我希望它返回一个 3x2 矩阵,但它返回一个 2x3 矩阵。为什么是这样?为什么很难将它附加到另一个数据框?
当我尝试附加这些时,
我得到的错误是:
尽管以下似乎给出了预期的结果:
我无法对变量进行操作:
返回
谢谢!
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 中的良好编码实践是什么?
你的编程风格是什么,你如何看待它的优点和缺点?
python - 是否可以对 NumPy 数组的递归计算进行矢量化,其中每个元素都依赖于前一个元素?
Tm
和tau
是先前计算的相同长度的 NumPy 向量,希望创建一个新向量T
。i
仅包含用于指示所需内容的元素索引。
这种情况下是否需要 for 循环?
loops - 在 FORTRAN 中禁用矢量化循环?
是否可以绕过 FORTRAN 中的循环矢量化?我正在为特定项目编写 F77 标准,但 GNU gfortran 通过现代 FORTRAN 编译,例如 F95。有谁知道某些 FORTRAN 标准是否避免了循环矢量化,或者 gfortran 中是否有任何标志/选项可以关闭它?
更新:所以,我认为我的具体问题的最终解决方案必须“DO”与 FORTRAN DO 循环不允许更新迭代变量。可以在@High Performance Mark 对此相关线程的回复中找到对此的提及...循环矢量化以及如何避免它
[进入堡垒,让菜鸟躲避。]
loops - 循环矢量化以及如何避免它
循环向量化是在开始时计算所有右侧表达式。我刚刚发现我的循环正在被矢量化(在 FORTRAN 77 中......不要问)。我需要在每次迭代中更新循环条件变量,但是如何重写以解决这个向量化?
在相关帖子中,我正在寻找一种方法来专门禁用 FORTRAN 中的此优化“功能”,但在这里我正在寻找针对一般情况的更算法解决方案。
r - 关于摆脱循环的建议
我编写了一个程序来解决 3n + 1 问题(又名“奇妙的数字”和其他各种问题)。但它有一个双循环。我怎么能矢量化它?
代码是
谢谢!
python - Numpy矢量化,使用列表作为参数
numpyvectorize
函数很有用,但是当函数参数是列表而不是标量时,它的表现就不好。举个例子:
给出:
我知道函数 f无需ing 它就可以正常vectorize
工作,但我想知道(通常)如何矢量化其参数采用列表而不是标量的函数。