Это правильно:
np.count_nonzero(lr_l1.coef_)
В первом варианте, однако, вы не находите количество ненулевых значений в массиве, но выясняете, существует ли не менее 1 ненулевого значения. Вот что делает np.any()
.
Вместо этого должно быть следующее:
non_zero_weights = np.not_equal(lr_l1.coef_, 0)
new_vocab_size = non_zero_weights.sum()