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