ArrayReduce[f,array,n]
通过应用 f 约减数组 array 的维度 n.
ArrayReduce[f,array,n1;;n2]
约减 n1 到 n2 的维度.
ArrayReduce[f,array,{n1,n2,…}]
约减维度 n1,n2 等.
ArrayReduce[f,array,{{n11,n12,…},{n21,n22,…},…}]
将 f 应用到通过合并所有维度 nij 组成每个维度 i 形成的数组.
ArrayReduce
ArrayReduce[f,array,n]
通过应用 f 约减数组 array 的维度 n.
ArrayReduce[f,array,n1;;n2]
约减 n1 到 n2 的维度.
ArrayReduce[f,array,{n1,n2,…}]
约减维度 n1,n2 等.
ArrayReduce[f,array,{{n11,n12,…},{n21,n22,…},…}]
将 f 应用到通过合并所有维度 nij 组成每个维度 i 形成的数组.
更多信息
- 数组缩减,也称为数组聚合,用于在数组特定维度上计算的函数,如 Mean、Total 或 StandardDeviation.
- 在 ArrayReduce[f,array,n] 中,f 应用于数组第 n 个维度上的每一个向量. 这可以看做是一个移项,其中维度 n 变成了最后一个维度,接着是在最底层向量上应用 f:
- 若 array 有维度 {d1,d2,…},且若函数将向量转换为标量,则结果是除了被删除的 dn 外,该数组的维度与 array 一样.
- 在 ArrayReduce[f,array,n1;;n2] 和 ArrayReduce[f,array,{n1,n2,…}]中,f 应用于每个通过合并和展平指定维度形成的每一个向量.
- 在 ArrayReduce[f,array,{{n11,n12,…},{n21,n22,…},…}] 中,f 不仅仅应用于向量,还应用于任意秩的数组.
- ArrayReduce[f,array,{n1,n2,…}] 等价于 ArrayReduce[f,array,{{n1,n2,…}}].
范例
打开所有单元 关闭所有单元基本范例 (3)
ArrayReduce[Mean, (| | | | | |
| -- | -- | -- | -- | -- |
| 1 | 2 | 3 | 4 | 5 |
| 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 |), 2]ArrayReduce[Mean, (| | | | | |
| -- | -- | -- | -- | -- |
| 1 | 2 | 3 | 4 | 5 |
| 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 |), 1]array = RandomInteger[9, {3, 5, 2}]array2 = ArrayReduce[StandardDeviation, array, 2]Dimensions[array2]MatrixForm[array] -> MatrixForm[array2]array = RandomReal[9, {3, 5, 2, 6, 4}];array2 = ArrayReduce[Total, array, {2, 4}]//Dimensions范围 (3)
MatrixForm[array = ArrayReshape[Alphabet[], {2, 3, 4}]]ArrayReduce[Apply[h], array, 1]//MatrixFormArrayReduce[Apply[h], array, 2]//MatrixFormArrayReduce[Apply[h], array, 3]//MatrixFormarray = RandomInteger[9, {3, 2, 2, 3, 2}]ArrayReduce[Total, array, 2 ;; 4]ArrayReduce[Total, array, {2, 3, 4}]ArrayReduce[Total, array, {3, 4, 2}]MatrixForm[array = ArrayReshape[DateRange[DateObject[{2025, 1}, "Month"], DateObject[{2026, 12}, "Month"], "Month"], {2, 4, 3}]]沿第三层(月)进行约简,得到一个由两年 x 四个季度组成的矩阵:
ArrayReduce[f, array, 3]//MatrixFormArrayReduce[f, array, 2]//MatrixFormArrayReduce[f, array, 1]//MatrixFormArrayReduce[f, array, {1, 2}]ArrayReduce[f, array, {2, 3}]ArrayReduce[f, array, {1, 3}]ArrayReduce[f, array, {1, 2, 3}]属性和关系 (9)
对于正整数 n,ArrayReduce[f,array,n] 等价于 ArrayReduce[f,array,{n}]:
array = RandomInteger[10, {2, 4, 3}]ArrayReduce[Total, array, 2]ArrayReduce[Total, array, {2}]ArrayReduce[Total,array,n] 等价于 Total[array,{n}]:
array = RandomInteger[100, {2, 3, 4, 5}];Table[ArrayReduce[Total, array, n] === Total[array, {n}], {n, 1, 4}]ArrayReduce[Total,array,1;;n] 等价于 Total[array,n]:
Table[ArrayReduce[Total, array, 1 ;; n] === Total[array, n], {n, 1, 4}]对于深度为 k 的数组 a,ArrayReduce[f,a,{1,…,k}] 等价于 f[Flatten[a]]:
a = RandomInteger[10, {2, 3, 2, 3}]ArrayReduce[f, a, {1, 2, 3, 4}] === f[Flatten[a]]对于深度为 k 的数组 a,ArrayReduce[f,a,{}] 等价于 Map[f,a,{k}]:
a = RandomInteger[10, {2, 3, 2}]ArrayReduce[f, a, {}]% === Map[f, a, {3}]对于深度为 k 的数组 a 和列表 ν={n1,n2,…,ns} (不同的层 ni≤k), ArrayReduce[f,a,ν] 等价于 Map[f,Flatten[a,{{m1},…,{mr},ν}],{r}],其中, {m1,...,mr}=Complement[Range[k],ν]:
a = RandomInteger[10, {2, 3, 2, 2, 3}]ArrayReduce[f, a, {2, 5, 3}]% === Map[f, Flatten[a, {{1}, {4}, {2, 5, 3}}], {2}]对于深度为 k 的数组 a,其中,n1≤n2≤k,ArrayReduce[f,a,n1;;n2] 等价于 ArrayReduce[f,a,Range[n1,n2]]:
a = RandomInteger[10, {2, 3, 3, 2}]ArrayReduce[f, a, 2 ;; 4]% === ArrayReduce[f, a, {2, 3, 4}]对于数组 a,ArrayReduce[f,a,{{n1,…,ns}}] 等价于 ArrayReduce[f,a,{n1,…,ns}]:
a = RandomInteger[10, {2, 3, 3, 2}];ArrayReduce[f, a, {{3, 1, 4}}] === ArrayReduce[f, a, {3, 1, 4}]对于矩形数组 a,TensorContract[a,{{i1,i2},{j1,j2},…}] 等价于ArrayReduce[Tr,a,{{i1,j1,…},{i2,j2,…}}]:
a = Array[Subscript[x, ##]&, {1, 2, 3, 2, 3, 2, 3, 2}];TensorContract[a, {{2, 6}, {3, 7}, {4, 8}}]% === ArrayReduce[Tr, a, {{2, 3, 4}, {6, 7, 8}}]AggregationLayer[f,levels][array] 也可以表示为 ArrayReduce[f,array,levels]:
array = RandomReal[1, {1, 2, 3, 4}];AggregationLayer[Mean, {1, 3, 4}][array]ArrayReduce[Mean, array, {1, 3, 4}]文本
Wolfram Research (2020),ArrayReduce,Wolfram 语言函数,https://reference.wolfram.com/language/ref/ArrayReduce.html.
CMS
Wolfram 语言. 2020. "ArrayReduce." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/ArrayReduce.html.
APA
Wolfram 语言. (2020). ArrayReduce. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/ArrayReduce.html 年
BibTeX
@misc{reference.wolfram_2026_arrayreduce, author="Wolfram Research", title="{ArrayReduce}", year="2020", howpublished="\url{https://reference.wolfram.com/language/ref/ArrayReduce.html}", note=[Accessed: 11-August-2026]}
BibLaTeX
@online{reference.wolfram_2026_arrayreduce, organization={Wolfram Research}, title={ArrayReduce}, year={2020}, url={https://reference.wolfram.com/language/ref/ArrayReduce.html}, note=[Accessed: 11-August-2026]}