Lua:table 的维度

Lua: Dimensions of a table

这似乎是一个非常简单的 "google it for me" 类问题,但我似乎无法得到答案。如何使用类似于 Numpy 的 .shape 方法的命令在 Lua 中找到 table 的维度? 例如。 blah = '2 x 3 table'; blah.lua_equivalent_of_shape = {2,3}

Lua 中的表是键值对集,没有维度。

您可以使用 Lua 表格实现二维数组。在这种情况下,维度由 #t x #t[1] 给出,如下例所示:

t={
{11,12,13},
{21,22,23},
}
print(#t,#t[1])

Numpy 的数组在内存中是连续的,而 Lua 的 table 是散列,因此它们并不总是具有形状的概念。表可用于实现参差不齐的数组、集合、对象等

也就是说,要找到 table、t 的长度,使用索引 1..n 使用 #t

t = {1, 2, 3}
print(#t) -- prints 3

您可以实现一个对象,使其表现得更像一个 numpy 数组并添加形状属性,或者在 C 中实现它并为 Lua 进行绑定。

t = {{1, 0}, {2, 3}, {3, 1}, shape={2, 2}}
print(t.shape[1], t.shape[2])
print("dims", #t.shape)

如果您真的想念 Numpy 的功能,您可以使用 torch.tensor 在 Lua.

中使用类似 numpy 的高效功能