gpt4 book ai didi

python - 从 Numpy 矩阵构造 Python 集

转载 作者:IT老高 更新时间:2023-10-28 21:06:17 30 4
gpt4 key购买 nike

我正在尝试执行以下操作

>> from numpy import *
>> x = array([[3,2,3],[4,4,4]])
>> y = set(x)
TypeError: unhashable type: 'numpy.ndarray'

如何轻松高效地创建包含 Numpy 数组中所有元素的集合?

最佳答案

如果你想要一组元素,这里有另一种可能更快的方法:

y = set(x.flatten())

PS:在x.flatx.flatten()x.ravel()之间进行比较后 在 10x100 阵列上,我发现它们都以大致相同的速度执行。对于 3x3 数组,最快的版本是迭代器版本:

y = set(x.flat)

我会推荐它,因为它是内存成本较低的版本(它可以很好地随着数组的大小而扩展)。

PPS:还有一个 NumPy 函数可以做类似的事情:

y = numpy.unique(x)

这确实会生成一个与 set(x.flat) 具有相同元素的 NumPy 数组,但它是一个 NumPy 数组。这非常快(几乎快 10 倍),但是如果你需要一个 set,那么执行 set(numpy.unique(x)) 会比另一个慢一点程序(构建一个集合需要很大的开销)。

关于python - 从 Numpy 矩阵构造 Python 集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1939228/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com