0
행렬에 정수 값이 있다고 가정합니다. 확률 행렬 (행렬의 각 행을 1과 합한 행)을 만들어야합니다.확률 행렬 정규화에 대한 정수 행렬
무작위 행렬을 만들고 각 행의 개수 합을 계산하고 행 합계를 위해 행의 각 요소를 나눕니다.
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']
각 행의 합계는 1과 같아야합니다. 그러나 그렇지 않습니다.
(dt.sum_row_normalized == 1).value_counts()
> False 75
> True 25
> Name: sum_row_normalized, dtype: int64
일부 값은 정확히 1이 아니지만 아주 가깝다는 것을 알고 있습니다. 그럼에도 불구하고 어떻게 행렬을 올바르게 정규화 할 수 있습니까?
주 (당신은 파이썬 3.x의에서
.astype(float)
단계가 필요하지 않습니다) 'float' 처음 :'dt [col_n]/float (dt [ 'sum_row'])'. –