【问题标题】:Lua: Dimensions of a tableLua:表格的尺寸
【发布时间】:2015-01-14 20:45:32
【问题描述】:

这似乎是一个非常简单的“帮我用谷歌搜索”之类的问题,但我似乎无法得到答案。如何使用类似于 Numpy 的 .shape 方法的命令在 Lua 中查找表的尺寸? 例如。 blah = '2 x 3 table'; blah.lua_equivalent_of_shape = {2,3}

【问题讨论】:

    标签: numpy lua lua-table


    【解决方案1】:

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

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

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

    【讨论】:

    • 正是我想要的。
    【解决方案2】:

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

    话虽如此,要找到表的长度,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 的高效功能。

    【讨论】:

    • 我不知道 Numpy 和 Lua 如何处理内存中的表之间的区别。谢谢你告诉我。
    猜你喜欢
    • 2014-07-13
    • 2012-09-17
    • 2018-09-02
    • 1970-01-01
    • 1970-01-01
    • 2016-11-07
    • 2015-07-12
    • 1970-01-01
    • 2020-12-26
    相关资源
    最近更新 更多