Lua:桌子的尺寸

时间:2015-01-14 00:53:43

标签: numpy lua lua-table

这看起来真的很容易,#34; google for me"有点问题,但我似乎无法得到答案。如何使用类似于Numpy的.shape方法的命令在Lua中找到表的维度? 例如。 blah = '2 x 3 table'; blah.lua_equivalent_of_shape = {2,3}

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:0)

Numpy的数组在内存中是连续的,而Lua的表是Hashes,因此它们并不总是具有形状的概念。表可用于实现不规则的数组,集合,对象等。

话虽这么说,为了找到一个表的长度t,使用索引1..n使用#t

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

您可以实现一个对象,使其更像numpy数组并添加一个shape属性,或者在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功能。