我想在一个形状为400,800,3的numpy ndarray中找到唯一的像素。我可以用np.unique(im.reshape(-1, 3), axis=0)
得到我想要的东西,但是np.unique对我的应用程序来说太慢了,因为它对数组进行排序。我发现this答案似乎提供了一个更快的选择。但是,因为它是数组的整数,所以它给出唯一的单个整数,而不是唯一的RGB颜色值。如何使用numpy获得唯一的rgb值?
我想在一个形状为400,800,3的numpy ndarray中找到唯一的像素。我可以用np.unique(im.reshape(-1, 3), axis=0)
得到我想要的东西,但是np.unique对我的应用程序来说太慢了,因为它对数组进行排序。我发现this答案似乎提供了一个更快的选择。但是,因为它是数组的整数,所以它给出唯一的单个整数,而不是唯一的RGB颜色值。如何使用numpy获得唯一的rgb值?
2条答案
按热度按时间n7taea2i1#
numpy
和pandas
之间的(非常)快速检查表明,即使所有需要的转换,如果排序不是问题,pandas.unique
也优于numpy
。这是如何工作的:
35g0bw712#
标准
set
将是最快的:我的计算机(AMD 5700x)上的打印: