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



