gpt4 book ai didi

arrays - 数组切片上的矢量化和

转载 作者:行者123 更新时间:2023-12-04 23:29:58 24 4
gpt4 key购买 nike

假设我有一个三个维度的数组:

set.seed(1)
foo <- array(rnorm(250),dim=c(5,10,5))

我想为第 4、5 和 6 列的每一行和每一层创建一个矩阵。我可以这样写:
apply(foo[,4:6,],c(1,3),sum)

但这会按行和层拆分数组,并且速度非常慢,因为它没有进行矢量化。我也可以只添加切片:
foo[,4,]+foo[,5,]+foo[,6,]

哪个更快,但手动为多个切片做有点乏味。是否有一个函数可以在不手动指定每个切片的情况下执行上述表达式?

最佳答案

我认为您正在寻找 rowSums / colSums ( apply 的快速实现)

colSums(aperm(foo[,4:6,], c(2,1,3)))

> all.equal(colSums(aperm(foo[,4:6,], c(2,1,3))), foo[,4,]+foo[,5,]+foo[,6,])
[1] TRUE

关于arrays - 数组切片上的矢量化和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6595483/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com