我有一个二维数组,我想找到每行中有多少个唯一值。例如:
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
我无法。
您可以计算每行的集合长度。
[len(set(x)) for x in arr]
沿 axis=1(行)应用 np.unique ,然后计算唯一值的长度
res = np.array([len(np.unique(row)) for row in arr])