Lua:表的尺寸

这似乎是一个非常简单的“帮我谷歌一下”的问题,但我似乎找不到答案。如何使用类似于Numpy的.shape方法的命令在Lua中找到表格的尺寸?

例如,blah ='2 x 3 table'; blah.lua_equivalent_of_shape ={2,3}

点赞
用户107090
用户107090

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

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

t={
{11,12,13},
{21,22,23},
}
print(#t,#t[1])
2015-01-14 01:11:57
用户2726734
用户2726734

Numpy 的数组在内存中是连续的,而 Lua 的表(tables)是哈希的,所以它们不总是有一个形状的概念。表可以被用来实现不规则数组(ragged arrays)、集合、对象等等。

话虽如此,要找到表 t 的长度,可以使用 1..n 的索引,即使用 #t

t = {1, 2, 3}
print(#t) -- 输出 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 类似的功能。

2015-01-14 01:12:26