Comment convertir efficacement un Pandas DataFrame avec des valeurs manquantes en un tableau NumPy ?

Mary-Kate Olsen
Libérer: 2024-11-05 02:42:02
original
641 Les gens l'ont consulté

How to efficiently convert a Pandas DataFrame with missing values into a NumPy array?

Convertir une trame de données Pandas avec des valeurs manquantes en tableau NumPy

La méthode la plus efficace pour convertir une trame de données Pandas avec des valeurs manquantes en un NumPy le tableau se fait via df.to_numpy(). Elle offre plusieurs avantages par rapport aux méthodes plus anciennes telles que df.values, notamment :

  • Renvoie systématiquement une vue des données sous-jacentes pour minimiser la consommation de mémoire.
  • Gère les types d'extensions en les convertissant en NumPy approprié dtypes.
  • Préserve les types de données d'origine sauf indication contraire.

Exemple :

<code class="python">import pandas as pd
import numpy as np

# Create a DataFrame with missing values
df = pd.DataFrame({'A': [np.nan, np.nan, 0.1, 0.1, 0.1, 0.1],
                   'B': [0.2, np.nan, 0.2, 0.2, np.nan, np.nan],
                   'C': [np.nan, 0.5, 0.5, np.nan, 0.5, np.nan]})

# Convert to a NumPy array with missing values represented as `np.nan`
array = df.to_numpy()

# Result:
# array([[ nan,  0.2,  nan],
#        [ nan,  nan,  0.5],
#        [ 0.1,  0.2,  0.5],
#        [ 0.1,  0.2,  nan],
#        [ 0.1,  nan,  0.5],
#        [ 0.1,  nan,  nan]])</code>
Copier après la connexion

Préservation des Dtypes :

Bien que to_numpy ne prenne pas en charge la préservation directe des Dtypes, vous pouvez utiliser np.rec.fromrecords pour obtenir cet effet.

<code class="python"># Create a DataFrame with mixed data types
df = pd.DataFrame({'A': [1, 2, 3],
                   'B': [4, 5, 6],
                   'C': [7.2, 8.1, 9.3]})

# Convert to a structured array with preserved Dtypes
struct_array = np.rec.fromrecords(
    df.reset_index(),
    names=list(df.columns) + ['index']
)

# Result:
# rec.array([('a', 1, 4, 7.2), ('b', 2, 5, 8.1), ('c', 3, 6, 9.3)],
#           dtype=[('index', '<U1'), ('A', '<i8'), ('B', '<i8'), ('C', '<f8')])</code>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!