计算Python中矩阵(二维数组)的每一行有多少个唯一值

问题描述 投票:0回答:2

我有一个二维数组,我想找到每行中有多少个唯一值。例如:

arr = np.array([[3,4,4,4,3,4], 
                [4,4,4,4,4,4], 
                [3,3,3,2,3,2],
                [2,3,3,1,2,2]])

那么我希望获得的输出将是:

res = np.array([2,1,2,3])

因为第一行有两个唯一值,第二行有一个唯一值,第三行有两个,第四行有三个。

我怎样才能实现这个目标?使用

np.unique
np.bincounts
我无法。

python numpy matrix multidimensional-array unique
2个回答
1
投票

您可以计算每行的集合长度。

[len(set(x)) for x in arr]

0
投票

沿 axis=1(行)应用 np.unique ,然后计算唯一值的长度

res = np.array([len(np.unique(row)) for row in arr])
© www.soinside.com 2019 - 2024. All rights reserved.