如果需要一组元素,这是另一种可能更快的方法:
y = set(x.flatten())
:之间执行比较后x.flat
,x.flatten()
和x.ravel()
一个10x100阵列上,我发现,它们都在大约相同的速度来执行。对于3x3阵列,最快的版本是迭代器版本:
y = set(x.flat)
我建议这样做,因为它是内存消耗较少的版本(它随阵列的大小扩展得很好)。
y = numpy.unique(x)
这确实会产生一个NumPy数组,该元素具有与相同的元素set(x.flat)
,但作为NumPy数组。这是非常快的(快将近10倍),但是如果需要set
,则执行set(numpy.unique(x))
的过程将比其他过程要慢一些(构建集合会带来很大的开销)。