lens = np.array([len(item) for item in listvalues])
ID_arr = np.repeat(np.arange(len(lens)), lens)
vals = np.concatenate(listvalues)
out_shp = [ID_arr.max() + 1, vals.max() + 1]
counts = np.bincount(ID_arr * out_shp[1] + vals)
out = 100 * np.true_divide(counts.reshape(out_shp), lens[:, (None)])
Вычислить процент количества для списка массивов