例如:
有一组向量[0,1, 2, 2, 4, 5, 6, 9, 5, 5]
想该向量长度较大,且想统计向量内不同数值出现的次数时:
import numpy as
a = [0,1, 2, 2, 4, 5, 6, 9, 5, 5]
cls_count = np.eye(k)[a].sum(axis=0)
#k为a中最大数的值加1
原理:
eye()函数构建单位矩阵,即对角为1的矩阵。
cls_count看作一个矩阵。这个矩阵的行数为a内的元素总个数。
同时,第i行的内容为 0,0,…1,…0.
其中1所在的位置就是a中第i个元素的值。
下面再对clc_count每一列求和,那么每种元素出现的个数就求出来了。