在张量内推导出值的均值

use*_*225 3 wolfram-mathematica

我有20000 x 185 x 5张量,看起来像

{{{a1_1,a2_1,a3_1,a4_1,a5_1},{b1_1,b2_1,b3_1,b4_1,b5_1}... 
(continue for 185 times)}
 {{a1_2,a2_2,a3_2,a4_2,a5_2},{b1_2,b2_2,b3_2,b4_2,b5_2}...

 ...    
 ... 
 ...

{{a1_20000,a2_20000,a3_20000,a4_20000,a5_20000},
{b1_20000,b2_20000,b3_20000,b4_20000,b5_20000}... }}
Run Code Online (Sandbox Code Playgroud)

20000表示迭代次数,185表示个体,每个个体有5个属性.我需要构建一个185 x 5矩阵,存储每个人的5个属性的平均值,在20000次迭代中取平均值.

不知道最好的方法是什么.我知道Mean[ ]在矩阵上工作,但是使用Tensor,派生的值可能不是我需要的.另外,如果我试图做Mean [tensor],Mathematica会耗尽内存.请提供一些帮助或建议.谢谢.

Bre*_*ion 5

如有疑问,请删除尺寸的大小.(您仍然可以将它们区分开来,以便轻松查看最终结果.)

(* In[1]:= *) data = Array[a, {4, 3, 2}]

(* Out[1]= *) {{{a[1, 1, 1], a[1, 1, 2]}, {a[1, 2, 1], 
   a[1, 2, 2]}, {a[1, 3, 1], a[1, 3, 2]}}, {{a[2, 1, 1], 
   a[2, 1, 2]}, {a[2, 2, 1], a[2, 2, 2]}, {a[2, 3, 1], 
   a[2, 3, 2]}}, {{a[3, 1, 1], a[3, 1, 2]}, {a[3, 2, 1], 
   a[3, 2, 2]}, {a[3, 3, 1], a[3, 3, 2]}}, {{a[4, 1, 1], 
   a[4, 1, 2]}, {a[4, 2, 1], a[4, 2, 2]}, {a[4, 3, 1], a[4, 3, 2]}}}

(* In[2]:= *) Dimensions[data]

(* Out[2]= *) {4, 3, 2}

(* In[3]:= *) means = Mean[data]

(* Out[3]= *) {
  {1/4 (a[1, 1, 1] + a[2, 1, 1] + a[3, 1, 1] + a[4, 1, 1]), 
   1/4 (a[1, 1, 2] + a[2, 1, 2] + a[3, 1, 2] + a[4, 1, 2])}, 
  {1/4 (a[1, 2, 1] + a[2, 2, 1] + a[3, 2, 1] + a[4, 2, 1]), 
   1/4 (a[1, 2, 2] + a[2, 2, 2] + a[3, 2, 2] + a[4, 2, 2])}, 
  {1/4 (a[1, 3, 1] + a[2, 3, 1] + a[3, 3, 1] + a[4, 3, 1]), 
   1/4 (a[1, 3, 2] + a[2, 3, 2] + a[3, 3, 2] + a[4, 3, 2])}
  }

(* In[4]:= *) Dimensions[means]

(* Out[4]= *) {3, 2}
Run Code Online (Sandbox Code Playgroud)