Torch/Lua中相当于MATLAB或Numpy的'Unique'函数

在Python中,可以使用以下代码获取向量/矩阵/张量中的唯一值:

import numpy as np

a = np.unique([1, 1, 2, 2, 3, 3])
#现在a = array([1, 2, 3])

MATLAB中也有类似的函数:

A = [9 2 9 5];
C = unique(A)
%现在C = [9, 2, 5]

Torch / Lua中是否也有相应的函数?

点赞
用户1150918
用户1150918

不,Lua或Torch中没有这样的标准函数。

考虑使用一些set数据结构的实现,编写自己的unique()函数或重新设计应用程序以避免需要这种功能。

以下是一个例子,共11行代码:

function vector_unique(input_table)
    local unique_elements = {} --记录所有唯一元素
    local output_table = {} --结果表/向量

    for _, value in ipairs(input_table) do
        unique_elements[value] = true
    end

    for key, _ in pairs(unique_elements) do
        table.insert(output_table, key)
    end

    return output_table
end

相关问题:

2016-04-06 18:21:00