ArrayDepth[expr]
给出 expr 为全数组的深度,其中特定层的所有部分具有相同长度.
ArrayDepth
ArrayDepth[expr]
给出 expr 为全数组的深度,其中特定层的所有部分具有相同长度.
更多信息和选项
- ArrayDepth[list] 等价于 Length[Dimensions[list]].
- 对于特殊的数组对象(如 SparseArray、NumericArray 和 QuantityArray),ArrayDepth 生成相应普通列表的深度.
- 可以给出以下选项:
-
AllowedHeads Automatic 在数组的每一层上允许哪些标头 - AllowedHeads 选项的设置包括:
-
Automatic 默认设置 Inherited 仅允许 Head[expr] 在任何层 h 仅允许 h 在任何层 {h1,…} 允许任何一个 h1,… 在不同层 h1|h2|… 允许 hi 在相同层或不同层 "ListLike" 允许 List 和相关的标头 All 允许任何标头在不同层 Full 允许任何标头在任何层 - 设置 AllowedHeads"ListLike" 允许所有被 ArrayQ 识别的标头,包括 List、SparseArray 以及结构化的数组标头,如 QuantityArray 和 SymmetrizedArray.
- 在默认设置 AllowedHeads->Automatic 下,expr 中的连续层必须具有相同的标头,除了普通列表、稀疏数组和结构化数组被视为相同的标头之外.
范例
打开所有单元 关闭所有单元范围 (4)
ArrayDepth 仅对不“参差不齐”的表达式计算维度:
Dimensions[{{a, b, c}, {d, e}, {f}}]ArrayDepth[{{a, b}, {c}}]ArrayDepth 适用于特殊的数组类型,包括 SparseArray 对象:
SparseArray[{{{a, b}}}]ArrayDepth[%]SymmetrizedArray 对象:
SymmetrizedArray[{{1, 2} -> a, {2, 3} -> b}, {4, 4}, Symmetric[{1, 2}]]ArrayDepth[%]NumericArray 对象:
NumericArray[{{{1}, {2}}, {{3}, {4}}, {{5}, {6}}}, "UnsignedInteger8"]ArrayDepth[%]求由 List 和其他特殊数组标头混合而成的矩阵的深度:
ArrayDepth[{{1, 2}, SparseArray[{3, 4}], QuantityArray[{5, 6}, "Meters"]}]ArrayDepth 适用于任何标头,而不仅限于 List:
ArrayDepth[f[f[a, b], f[c, d]]]选项 (4)
AllowedHeads (4)
只考虑标头为 List的嵌套表达式:
ArrayDepth[f[f[1, 2, 3], f[4, 5, 6]], AllowedHeads -> List]Dimensions[f[f[1, 2, 3], f[4, 5, 6]]]ArrayDepth[{NumericArray[{1, 2, 3}, "Integer8"], NumericArray[{4, 5, 6}, "Integer8"]}, AllowedHeads -> {List, NumericArray}]ArrayDepth[{{1, 2, 3}, NumericArray[{4, 5, 6}, "Integer8"]}, AllowedHeads -> {List, NumericArray}]ArrayDepth[{{1, 2, 3}, NumericArray[{4, 5, 6}, "Integer8"]}, AllowedHeads -> List | NumericArray]允许 List 以及其他常规数组表示形式:
ArrayDepth[{SparseArray[{1, 2, 3}], SymmetrizedArray[{4, 5, 6}]}, AllowedHeads -> "ListLike"]仅允许标头 List:
ArrayDepth[{SparseArray[{1, 2, 3}], SymmetrizedArray[{4, 5, 6}]}, AllowedHeads -> List]ArrayDepth[f[f[1, 2, 3], f[4, 5, 6]], AllowedHeads -> "ListLike"]ArrayDepth[f[f[1, 2, 3], f[4, 5, 6]], AllowedHeads -> List]ArrayDepth[f[g[1, 2, 3], g[4, 5, 6]], AllowedHeads -> All]ArrayDepth[f[g[1, 2, 3], h[4, 5, 6]], AllowedHeads -> All]ArrayDepth[f[g[1, 2, 3], h[4, 5, 6]], AllowedHeads -> Full]属性和关系 (8)
Length[Dimensions[expr]] 等于 ArrayDepth[expr]:
ArrayDepth[{{a, b}, {c, d}}] == Length[Dimensions[{{a, b}, {c, d}}]]ArrayDepth 总是返回一个非负整数:
ArrayDepth[1]ArrayDepth[{1, 2}]ArrayDepth[{{1, 2}}]选项 AllowedHeads 的默认值允许列表、稀疏和结构化数组的混合:
listArray = {{1, 2}, SparseArray[{3, 4}], QuantityArray[{5, 6}, "Meters"]};
ArrayDepth[listArray]fArray = f[f[1, 2], f[3, 4], f[5, 6]];
ArrayDepth[fArray]AllowedHeads 的下列设置模仿关于列表式数组的默认行为:
ArrayDepth[listArray, AllowedHeads -> "ListLike"]ArrayDepth[fArray, AllowedHeads -> "ListLike"]VectorQ、MatrixQ 和 ArrayQ 有效利用 AllowedHeads"ListLike":
sparse = SparseArray[{1, 2}];quant = QuantityArray[{1, 2}, "Meters"];{VectorQ[sparse], ArrayDepth[sparse, AllowedHeads -> "ListLike"]}{ArrayQ[quant], ArrayDepth[quant, AllowedHeads -> "ListLike"]}{MatrixQ[{sparse, quant}], ArrayDepth[{sparse, quant}, AllowedHeads -> "ListLike"]}设置 AllowedHeads"ListLike" 不包括 ByteArray 和 NumericArray:
list = {ByteArray[{1, 2, 3}], NumericArray[{1., 2., 3.}, "Real64"]};ArrayDepth[list, AllowedHeads -> "ListLike"]ArrayDepth[list, AllowedHeads -> "ListLike" | ByteArray | NumericArray]ArrayDepth[Array[h,dims]] 给出 Length[dims]:
ArrayDepth[Array[a, {2, 1, 4, 3}]] == Length[{2, 1, 4, 3}]ArrayDepth 仅考虑表达式完全为矩形的层:
{ArrayDepth[{{a}, {b}}], ArrayDepth[{{a}, {f[b]}}]}Depth 考虑表达式的最深部分:
{Depth[{{a}, {b}}], Depth[{{a}, {f[b]}}]}对于完全矩形表达式,ArrayDepth 给出的结果比 Depth 小1:
{Depth[{a, b}], ArrayDepth[{a, b}]}{Depth[{{a}, {b}}], ArrayDepth[{{a}, {b}}]}可能存在的问题 (1)
数值表达式根据其 FullForm 的结构报告数组深度:
FullForm[Sqrt[2]]ArrayDepth[Sqrt[2]]要将所有数值表达式都视为标量,需要对 AllowedHeads 使用设置 List 或 "ListLike":
ArrayDepth[Sqrt[2], AllowedHeads -> List]相关指南
-
▪
- 列表元素 ▪
- 张量 ▪
- GPU 计算 ▪
- NVIDIA GPU 计算 ▪
- Apple GPU 计算
历史
2003年引入 (5.0) | 在以下年份被更新:2019 (12.0) ▪ 2020 (12.1)
文本
Wolfram Research (2003),ArrayDepth,Wolfram 语言函数,https://reference.wolfram.com/language/ref/ArrayDepth.html (更新于 2020 年).
CMS
Wolfram 语言. 2003. "ArrayDepth." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2020. https://reference.wolfram.com/language/ref/ArrayDepth.html.
APA
Wolfram 语言. (2003). ArrayDepth. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/ArrayDepth.html 年
BibTeX
@misc{reference.wolfram_2026_arraydepth, author="Wolfram Research", title="{ArrayDepth}", year="2020", howpublished="\url{https://reference.wolfram.com/language/ref/ArrayDepth.html}", note=[Accessed: 14-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_arraydepth, organization={Wolfram Research}, title={ArrayDepth}, year={2020}, url={https://reference.wolfram.com/language/ref/ArrayDepth.html}, note=[Accessed: 14-September-2026]}