Supposons que j'ai une matrice avec des valeurs entières. Je veux rendre la matrice stochastique (c'est-à-dire la somme de chaque ligne dans la matrice égale à 1)Matrice entière à normalisation de matrice stochastique
Je crée une matrice aléatoire, compte la somme de chaque ligne et divise chaque élément en ligne pour la somme des lignes. Après cette somme de chaque ligne doit être égale à 1. Mais ce n'est pas le cas.
dt = pd.DataFrame(np.random.randint(0,10000,size=10000).reshape(100,100))
dt['sum_row'] = dt.sum(axis=1)
for col_n in dt.columns[:-1]:
dt[col_n] = dt[col_n]/dt['sum_row']
Je comprends que certaines valeurs ne sont pas exactement 1 mais très proches de celles-ci. Néanmoins, comment puis-je normaliser la matrice correctement?
Notez que '== 1' en 3/2 Python 2. Essayez de convertir l'un des deux numéros dans la division un 'float 'en premier:' dt [col_n]/float (dt [' sum_row ']) '. –