Combinaison de tableaux avec plusieurs types de données dans NumPy
Le désir de concaténer des tableaux contenant différents types de données en un seul tableau avec les types de données correspondants dans chaque colonne pose un défi. Une approche courante, utilisant np.concatenate(), convertit malheureusement l'intégralité du tableau en type de données chaîne, entraînant des inefficacités de mémoire.
Pour surmonter cette limitation, une solution viable consiste à utiliser des tableaux d'enregistrements ou des tableaux structurés.
Tableaux d'enregistrements
Les tableaux d'enregistrements permettent d'accéder à des champs de données individuels via des attributs. En spécifiant le type de données de chaque champ, plusieurs types de données peuvent être combinés dans un seul tableau :
import numpy as np
a = np.array(['a', 'b', 'c', 'd', 'e'])
b = np.arange(5)
records = np.rec.fromarrays((a, b), names=('keys', 'data'))
print(records)
Sortie :
rec.array([('a', 0), ('b', 1), ('c', 2), ('d', 3), ('e', 4)], dtype=[('keys', '|S1'), ('data', '<i8')])
Tableaux structurés
Les tableaux structurés sont similaire, offrant la possibilité de définir le type de données de chaque colonne. Cependant, ils ne prennent pas en charge l'accès aux attributs comme les tableaux d'enregistrement :
arr = np.array([('a', 0), ('b', 1)],
dtype=([('keys', '|S1'), ('data', 'i8')]))
print(arr)
Sortie :
array([('a', 0), ('b', 1)], dtype=[('keys', '|S1'), ('data', '<i8')])
Choisir entre des tableaux d'enregistrement et structurés
Le choix entre les tableaux d'enregistrements et les tableaux structurés dépend des cas d'utilisation individuels. Les tableaux d'enregistrements facilitent l'accès aux attributs, tandis que les tableaux structurés peuvent être préférés pour les structures de données plus complexes. Les deux approches offrent un moyen pratique de combiner des tableaux avec différents types de données dans NumPy, offrant ainsi flexibilité et efficacité dans la manipulation des données.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3