web-dev-qa-db-fra.com

Convertir Pandas dataframe en Sparse Numpy Matrix directement

Je crée une matrice à partir d'une trame de données Pandas comme suit:

dense_matrix = np.array(df.as_matrix(columns = None), dtype=bool).astype(np.int)

Et puis dans une matrice clairsemée avec:

sparse_matrix = scipy.sparse.csr_matrix(dense_matrix)

Existe-t-il un moyen de passer d'une matrice df directement à une matrice clairsemée?

Merci d'avance.

32
user7289

df.values est un tableau numpy, et l'accès aux valeurs de cette façon est toujours plus rapide que np.array.

scipy.sparse.csr_matrix(df.values)

Vous devrez peut-être d'abord effectuer la transposition, comme df.values.T. Dans DataFrames, les colonnes sont l'axe 0.

44
Dan Allan