从numpy中的矩阵中提取唯一的行,其中包含创建的每一行的频率

Yuv*_*mon 5 python numpy unique matrix scipy

关于以下问题的后续问题:

如何在Python中使用MATLAB中的唯一(a,'rows')?

那里的答案解释了如何获得唯一的行.然而,matlab还返回创建的每一行的频率.用python做任何优雅的方式吗?

谢谢!

Joh*_*all -1

我曾经遇到过这个问题。我做了以下事情:与其说是一个完美的解决方案,不如说是一个优雅的黑客。

首先将二维数组转换为一维数组或可哈希列表,从那里开始就很容易了。转换为一维浮点数组的一种方法是使用 D 维随机向量进行点积。例如:

a = np.array([[1.32,1,4],[2,3,3.5],[1.32,1,4],[4,5,6.2]])

b = np.random.randint(1,10**20,3)

c = np.dot(a,b)
vals, idx = np.unique(c,True)
Run Code Online (Sandbox Code Playgroud)