Maison >développement back-end >Tutoriel Python >Comment concaténer des tableaux avec différents types de données et maintenir l'efficacité de la mémoire ?
Concaténation de tableaux avec plusieurs types de données
Lorsque vous traitez des données de différents types, il est souvent nécessaire de les combiner en un seul tableau. Cela peut être fait efficacement sans convertir l'intégralité du tableau en un seul type de données.
Considérez le scénario suivant : vous disposez de deux tableaux, A contenant des chaînes et B contenant des entiers. Le but est de créer un tableau combiné combiné_array où chaque colonne conserve son type de données d'origine.
Pendant la concaténation de A et B avec np.concatenate comme Combined_array = np.concatenate((A, B), axis = 1) apparaît simple, il convertit l'intégralité du tableau en dtype=string par défaut, ce qui entraîne des inefficacités de mémoire.
Solution : tableaux d'enregistrement et tableaux structurés
Une approche efficace consiste à utiliser tableaux d'enregistrement ou tableaux structurés.
Tableaux d'enregistrement :
Les tableaux d'enregistrement offrent un moyen flexible de stocker plusieurs types de données dans un seul tableau. Les champs individuels sont accessibles via les attributs :
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) # rec.array([('a', 0), ('b', 1), ('c', 2), ('d', 3), ('e', 4)], # dtype=[('keys', '|S1'), ('data', '<i8')]) print(records['keys']) # rec.array(['a', 'b', 'c', 'd', 'e'], # dtype='|S1') print(records['data']) # array([0, 1, 2, 3, 4])
Tableaux structurés :
Semblables aux tableaux d'enregistrement, les tableaux structurés permettent de spécifier un type de données pour chaque champ. :
arr = np.array([('a', 0), ('b', 1)], dtype=([('keys', '|S1'), ('data', 'i8')])) print(arr) # array([('a', 0), ('b', 1)], # dtype=[('keys', '|S1'), ('data', '<i8')])
Notez que les tableaux d'enregistrements fournissent un accès aux attributs, contrairement aux tableaux structurés.
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!