Ukończenie macierzy w Pythonie

Powiedz, że mam matrycę:

> import numpy as nap
> a = np.random.random((5,5))

array([[ 0.28164485,  0.76200749,  0.59324211,  0.15201506,  0.74084168],
       [ 0.83572213,  0.63735993,  0.28039542,  0.19191284,  0.48419414],
       [ 0.99967476,  0.8029097 ,  0.53140614,  0.24026153,  0.94805153],
       [ 0.92478   ,  0.43488547,  0.76320656,  0.39969956,  0.46490674],
       [ 0.83315135,  0.94781119,  0.80455425,  0.46291229,  0.70498372]])

I że wybiłem w nim kilka dziurnp.NaNnp .:

> a[(1,4,0,3),(2,4,2,0)] = np.NaN; 

array([[ 0.80327707,  0.87722234,         nan,  0.94463778,  0.78089194],
       [ 0.90584284,  0.18348667,         nan,  0.82401826,  0.42947815],
       [ 0.05913957,  0.15512961,  0.08328608,  0.97636309,  0.84573433],
       [        nan,  0.30120861,  0.46829231,  0.52358888,  0.89510461],
       [ 0.19877877,  0.99423591,  0.17236892,  0.88059185,        nan ]])

Chciałbym wypełnićnan wpisy wykorzystujące informacje z pozostałych wpisów macierzy. Przykładem może być użycieśredni wartość kolumny, gdzienan pojawiają się wpisy.

Bardziej ogólnie, czy są jakieś biblioteki w Pythoniezakończenie macierzy ? (np. coś podobnego doMetoda wypukłej optymalizacji Candes & Recht).

Tło:

Ten problem pojawia się często w uczeniu maszynowym. Na przykład podczas pracy zbrakujące funkcje w klasyfikacji / regresji lub wwspólne filtrowanie (np. zobacz problem NetflixWikipedia itutaj)

questionAnswers(5)

yourAnswerToTheQuestion