numpy corrcoef - compute correlation matrix, während die fehlenden Daten zu ignorieren
Ich versuche zur Berechnung einer Korrelationsmatrix mehrerer Werte. Diese Werte beinhalten einige 'nan' - Werte. Ich bin mit numpy.corrcoef. Für das element(i,j) des Ausgangs-Korrelationsmatrix, würde ich gerne die Korrelation errechnet, indem alle Werte, die es für die beiden Variablen i und der Variablen j.
Dies ist, was ich jetzt habe:
In[20]: df_counties = pd.read_sql("SELECT Median_Age, Rpercent_2008, overall_LS, population_density FROM countyVotingSM2", db_eng)
In[21]: np.corrcoef(df_counties, rowvar = False)
Out[21]:
array([[ 1. , nan, nan, -0.10998411],
[ nan, nan, nan, nan],
[ nan, nan, nan, nan],
[-0.10998411, nan, nan, 1. ]])
Zu viele nan ' s 🙁
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eines der wichtigsten Merkmale von
pandas
wirdNaN
freundlich. Zur Berechnung der Korrelation-matrix, rufen Sie einfachdf_counties.corr()
. Unten ist ein Beispiel um zu demonstrierendf.corr()
istNaN
tolerant in der Erwägung, dassnp.corrcoef
nicht.Diese arbeiten werden, mit der maskierte array
numpy
Modul:It-Ausgänge:
Lesen Sie hier mehr: https://docs.scipy.org/doc/numpy/reference/maskedarray.generic.html
In Fall, dass Sie erwarten, dass eine unterschiedliche Anzahl von nans in jedem array, können Sie erwägen, eine logische UND-nicht-nan-Masken.
numpy.ma
intelligent genug sein, um Einträge zu entfernen, aus der Berechnung der Korrelation, die fehlen in einem der beiden Eingänge? (Hint: tut es nicht :D)