【问题标题】:element-wise calculation with arrays (tensors)使用数组(张量)进行元素计算
【发布时间】:2021-11-22 08:19:21
【问题描述】:

我有一个 3 维数组 x 并想计算每个元素 w.r.t 的份额 a。第三维度:

我在 R 中尝试了以下操作,但由于“不一致的数组”(这当然是有道理的),这不起作用。

x <- array(
  data = 1:8,
  dim = c(2, 2, 2),
  dimnames = list(i = c("i1", "i2"), j = c("j1", "j2"), k = c("k1", "k2")))

a <- x / apply(x, c(1, 2), sum)

所以我正在寻找一种方法来执行张量计算,我可以在其中指定执行除法的维度。这是x 和我已经拥有的总和以及我想要的aa 在此处显示分数):

> x
, , k = k1

    j
i    j1 j2
  i1  1  3
  i2  2  4

, , k = k2

    j
i    j1 j2
  i1  5  7
  i2  6  8


> apply(x, c(1, 2), sum)
    j
i    j1 j2
  i1  6 10
  i2  8 12


> a
, , k = k1
    j
i     j1   j2
  i1 1/6 3/10
  i2 2/8 4/12

, , k = k2
    j
i     j1   j2
  i1 5/6 7/10
  i2 6/8 8/12

感谢任何提示!

【问题讨论】:

    标签: r arrays tensor


    【解决方案1】:

    试试proportions

    > proportions(x,1:2)
    , , k = k1
    
        j
    i           j1        j2
      i1 0.1666667 0.3000000
      i2 0.2500000 0.3333333
    
    , , k = k2
    
        j
    i           j1        j2
      i1 0.8333333 0.7000000
      i2 0.7500000 0.6666667
    

    【讨论】:

      猜你喜欢
      • 2018-09-02
      • 1970-01-01
      • 2018-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-01
      • 1970-01-01
      相关资源
      最近更新 更多